Javascript 数组推送在toArray函数内部不起作用使用mongoDB
我试图循环遍历集合中的所有文档,并将其存储在全局变量中,但看起来push()不起作用,并在toArray()中返回空数组[], 有什么建议吗Javascript 数组推送在toArray函数内部不起作用使用mongoDB,javascript,mongodb,express,Javascript,Mongodb,Express,我试图循环遍历集合中的所有文档,并将其存储在全局变量中,但看起来push()不起作用,并在toArray()中返回空数组[], 有什么建议吗 const mongo = require('mongodb'); const url = 'mongodb://localhost:27017/test' var data = []; const collections = mongo.connect(url, { useNewUrlParser: true }, (err, db) => {
const mongo = require('mongodb');
const url = 'mongodb://localhost:27017/test'
var data = [];
const collections = mongo.connect(url, { useNewUrlParser: true }, (err, db) => {
console.log('connection success');
db.db().listCollections().toArray((err, colls) => {
var collsPrinted = 0;
colls.forEach(element => {
db.db().collection(element.name).find().sort({"_id":-1}).limit(1).toArray((err, doc) => {
data.push(doc);
if (++collsPrinted == colls.length) db.close();
});
});
});
console.log(data);
})
在填充数据之前,正在调用您的控制台.log(数据)
。将控制台.log(数据)
移动到if
块中,如:
if (++collsPrinted == colls.length) {
db.close();
console.log(data);
}
很可能这就是问题所在。尝试使用异步方法