我正在将Node.js与npm软件包mongodb
一起使用。当我使用findOne(...)
时,我得到的结果直接就是我搜索的项目。相反,当我使用find(...)
时,我没有得到一个元素数组,但是得到的游标如果您console.log
看起来很奇怪。
我的问题是为什么它返回一个游标而不是元素数组,并且cursor.forEach(...)
调用然后是异步的,或者客户端如何从游标中获取数据?
答案 0 :(得分:1)
它返回游标而不是数组,以使客户端能够以最适合其需求的任何方式灵活地访问结果。
要获取所有结果的数组,可以在光标上调用异步toArray
方法:
collection.find({...}).toArray((err, docs) => {...});
与aggregate
相同:
collection.aggregate([{$match: {...}}]).toArray((err, docs) => {...});