繁体   English   中英

无法从 cursor 填充阵列

[英]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();

Node.js MongoDB 驱动程序 API - toArray

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM