我试图通过查询一个包含数组值的字段来打开来自mongoDB的数据流,并且每个数组的索引只返回一条记录。
var cursor = Collection.findOne({'lastName': { $in: [arrayOfLastNames]}}).cursor();
cursor.on('data', function (record) {
//do something with record
}) 无论出于什么原因,它都会为arrayOfLastNames的每个索引拉取多条记录。.findOne()方法的行为与.find()相同。任何关于为什么会发生这种情况的建议,或者这种实现的可能替代方案,我们都将不胜感激。
发布于 2016-12-17 06:22:07
你遇到了问题,因为你使用了游标。在mongoDB documentation中,“您不能将游标方法应用于findOne()的结果,因为只返回一个文档。”
在您的注释中,您希望为数组中的每一项调用一次findOne,因为带有findOne的$in将根据与数组中的任何项匹配的文档的"natural order“找到第一个文档(您也可以考虑直接使用通用find,因为这样您的游标解决方案就可以工作了)。
https://stackoverflow.com/questions/41193193
复制相似问题