node.js - MongoDB 游标在与 Node.js 一起使用时如何工作?
问题描述
我正在使用带有 npm 包的mongodb
Node.js。当我使用 时findOne(...)
,我得到的结果直接是我搜索的项目。当我find(...)
改为使用时,我没有得到一个元素数组,我得到一个游标,如果你这样做的话,console.log
它看起来很奇怪。
我的问题是为什么它返回一个游标而不是元素数组,cursor.forEach(...)
然后调用是异步的,或者客户端如何从游标中获取数据?
解决方案
它返回一个游标而不是一个数组,以便为客户端提供灵活性,以便以最适合其需求的方式访问结果。
要获取所有结果的数组,可以toArray
在游标上调用 async 方法:
collection.find({...}).toArray((err, docs) => {...});
同样的事情aggregate
:
collection.aggregate([{$match: {...}}]).toArray((err, docs) => {...});
推荐阅读
- javascript - 包含自定义键作为对象的 JSON 对象是否有效?
- sql - 有没有一种方法可以分组并仍然显示其他变量而不侵犯 no-aggregate 子句
- react-native - React Native - 动画ScrollView在滚动时设置不透明度
- file-upload - Wildfly 上传文件后留下两个孤立的文件描述符
- ios - Xamarin - 为 beta 测试人员部署 IOS 应用程序
- jenkins - 使用 groovy 脚本使用 CSV 文件中的值填充 Jenkins 扩展选择参数
- snowflake-cloud-data-platform - 运行递归查询时如何打破雪花中的循环
- jquery - 检查奇数或偶数子并使用 jQuery 将类添加到父级
- php - 循环多维数组以更新 PHP 中的值
- scala - Kafka 流:在摄取时间加入