与Node.js一起使用时,MongoDB游标如何工作?

时间:2018-10-29 22:37:18

标签: node.js mongodb

我正在将Node.js与npm软件包mongodb一起使用。当我使用findOne(...)时,我得到的结果直接就是我搜索的项目。相反,当我使用find(...)时,我没有得到一个元素数组,但是得到的游标如果您console.log看起来很奇怪。

我的问题是为什么它返回一个游标而不是元素数组,并且cursor.forEach(...)调用然后是异步的,或者客户端如何从游标中获取数据?

1 个答案:

答案 0 :(得分:1)

它返回游标而不是数组,以使客户端能够以最适合其需求的任何方式灵活地访问结果。

要获取所有结果的数组,可以在光标上调用异步toArray方法:

collection.find({...}).toArray((err, docs) => {...});

aggregate相同:

collection.aggregate([{$match: {...}}]).toArray((err, docs) => {...});