mongo cursor findOne

时间:2016-12-16 22:15:47

标签: javascript mongodb

我试图通过查询具有值数组的字段来从mongoDB打开数据流,并且每个数组索引只返回一条记录。

var cursor = Collection.findOne({'lastName': { $in: [arrayOfLastNames]}}).cursor();

  cursor.on('data', function (record) {
   //do something with record
  })    

无论出于何种原因,它都会为arrayOfLastNames的每个索引提取多个记录。 .findOne()方法表现为.find()。 任何关于为什么会发生这种情况的建议,或者对这种实现的可能替代方案都将不胜感激。

1 个答案:

答案 0 :(得分:3)

因为您使用了游标而遇到了问题。从mongoDB documentation,“您无法将游标方法应用于findOne()的结果,因为返回了单个文档。”

从您的评论中,您想为数组中的每个项目调用printf()一次,因为findOne $in会根据“natural order”找到第一个文档匹配数组中任何项目的文档(您可能也会认为只是诚实地使用通用findOne,因为那时您的光标解决方案将起作用。)

相关问题