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

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

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


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

最佳答案

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

根据您的评论,您希望为数组中的每个项目调用一次findOne,因为带有$infindOne将根据与数组中任何项目匹配的文档的“ natural order”找到第一个文档(您还可以考虑诚实地使用常规find,因为那样您的光标解决方案就可以使用。

关于javascript - mongo光标findOne,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41193193/

10-12 13:35