我正在尝试通过查询具有值数组的字段来从 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
,因为使用 findOne
的 $in
将找到第一个文档根据与数组中的任何项目匹配的文档的“natural order”(您也可以老老实实地考虑使用一般的查找
,从那时起您的游标解决方案就会起作用)。
关于javascript - mongo游标findOne,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41193193/