首页 > 解决方案 > MongoDB 游标在与 Node.js 一起使用时如何工作?

问题描述

我正在使用带有 npm 包的mongodbNode.js。当我使用 时findOne(...),我得到的结果直接是我搜索的项目。当我find(...)改为使用时,我没有得到一个元素数组,我得到一个游标,如果你这样做的话,console.log它看起来很奇怪。

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

标签: node.jsmongodb

解决方案


它返回一个游标而不是一个数组,以便为​​客户端提供灵活性,以便以最适合其需求的方式访问结果。

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

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

同样的事情aggregate

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

推荐阅读