我正在尝试从MongoDB集群中检索所有文档。我一直在网上搜索并使用async / await关键字,并编写了以下代码
[
{
"name": "John",
"age": "25"
},
{
"name": "Jack",
"age": "20"
}
]
根据我对异步/等待模式的了解,//Database connection
const MongoClient = require('mongodb');
const uri = "mongodb+srv://user:password@cluster0-10soy.mongodb.net/test?retryWrites=true&w=majority";
async function GetQuestions() {
MongoClient.connect(uri, async function (err, client) {
const db = client.db("WhatSportWereYouMadeFor");
return await db.collection("Questions").find().toArray();
});
}
async function main(){
let questions = await GetQuestions();
console.log(questions);
}
main();
行仅应在console.log(questions)
内部的返回值被击中后才被击中,但事实并非如此。
答案 0 :(得分:2)
您应返回猫鼬结果的承诺:
const MongoClient = require('mongodb');
const uri = "mongodb+srv://user:password@cluster0-10soy.mongodb.net/test?retryWrites=true&w=majority";
async function GetQuestions() {
return new Promise((resolve, reject) => {
MongoClient.connect(uri, function (err, client) {
const db = client.db("WhatSportWereYouMadeFor");
resolve(db.collection("Questions").find().toArray());
});
});
}
async function main(){
let questions = await GetQuestions();
console.log(questions);
}
main();