[英]Can't populate array from cursor
我有一个 function 从集合中获取所有数据并且应该推送到一个数组然后返回该数组。 数据库是本地运行的mongoDB。 items
(文档)获取成功,我可以在日志中看到它。 但是result
数组根本不填充。 它显示为一个空数组。
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/";
var findAll = () => {
var result = []
MongoClient.connect(url, { useUnifiedTopology: true },function (err, db) {
if (err) throw err;
var cursor = db.db('music_db').collection("songDetails").find({})
cursor.forEach((item, err) => {
if (item === null) {
cursor.close();
return;
}
result.push(item)
console.log(item.title);
})
});
return result;
}
result = findAll();
console.log(result);
如果您只想获取从 mongoDB 返回的所有文档作为数组,请在cursor
上使用toArray()
方法。 例如:
// Get all values
const cursor = collection.find({});
const allValues = await cursor.toArray();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.