MongoError:TypeError:使用$或者不能读取未定义的属性“id”

我正在使用水线,并使用mongoimport命令导入数据库。 我使用本地驱动程序连接到mongo,调用.find和.aggregate。

使用$或查找多个logging时,使用前一组查询的结果。 数组看起来像

[{"\"ProductID\"": "76543"},{"\"ProductID\"": "74632"}, {"\"ProductID\"": "76534",...n}] 

不要紧张的关键,这是一个临时的设置,由于文件中的控制字符用于将csv转换为json,然后mongoimporting新文件。

我应该可以对数组执行以下查询。

 collection.find({$or: arrayResults }).toArray().then(function(result)... 

然后我收到错误: MongoError:TypeError:无法读取未定义的属性“id”

我可以通过减小数组来阻止错误。 这不是为了强制用户的批量查询,但我不知道如何解决这个问题。

作为一种解决方法,聚合框架$匹配阶段似乎没有任何问题。

 collection.aggregate([{$match: {$or: arrayResults}}}]).toArray().then(.... 

这个问题是我没有在我的查询中使用“ID”,所以我不明白什么是错的。

这个问题归结为与node.js驱动程序兼容。

探索了编写代码的许多途径来发现问题。 以及遇到不一致的错误,只是简单的挂在应用程序。

我validation了节点驱动程序的版本是2.0.44。 我的数据库版本是3.2的MongoDB。 mongoDB明确指出,与3.2的nodejs驱动程序的兼容性是> = 2.1.0。

我很惊讶没有人出现,build议这是一个mongoDB的专家,考虑到发生的错误是完全不符合我的数据库中的值。