Вернуть Mon goose результат запроса несколькими способами - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь получить данные из базы данных MongoDB, используя Mon goose для доступа к данным, однако я пытаюсь получить данные несколькими способами. Вот мой retrieveDocument метод:

function retrieveDocument(collectionName, schema, _id) {
    conn.once('open', async () => {
        var model = mongoose.model(collectionName, schema, collectionName)
        return await model.findById(_id)
    });
}

и как я вызываю метод:

function retrieveUserDocument(_id){
    return retrieveDocument("User", some_Schema, _id);
}
console.log(retrieveUserDocument("some_Id"));

Однако результат не распечатывается, а вместо этого код регистрация undefined, так как метод model.findById(_id) возвращает Promise.

Как я могу распечатать результат в структуре, которую я определил выше?

1 Ответ

0 голосов
/ 06 марта 2020

Я думаю, тебе стоит попробовать обещание здесь. Это может сработать, и вы должны попытаться дождаться вызова модели mon goose. Попробуйте код, который написан ниже

function retrieveDocument(collectionName, schema, _id) {
    return new Promise(async(resolve, reject) => {
        conn.once('open', async () => {
            var model = await mongoose.model(collectionName, schema, collectionName)
            resolve(model.findById(_id))
        });
    });
}
...