我试图通过查询具有值数组的字段来打开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
,因为带有$in
的findOne
将根据与数组中任何项目匹配的文档的“ natural order”找到第一个文档(您还可以考虑诚实地使用常规find
,因为那样您的光标解决方案就可以使用。
关于javascript - mongo光标findOne,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41193193/