错误:Mongo服务器和Meteor查询在匹配文档数量上存在分歧。也许它正在遇到Mongo的边缘情况?查询为:{}。

3
Exception in defer callback: Error: The Mongo server and the Meteor query disagree on how many documents match your query. Maybe it is hitting a Mongo edge case? The query is: {}
I20180319-12:18:14.344(5.5)?     at packages/mongo/oplog_observe_driver.js:881:15
I20180319-12:18:14.345(5.5)?     at Object.Meteor._noYieldsAllowed (packages/meteor.js:730:12)
I20180319-12:18:14.345(5.5)?     at OplogObserveDriver._publishNewResults (packages/mongo/oplog_observe_driver.js:851:12)
I20180319-12:18:14.345(5.5)?     at OplogObserveDriver._runQuery (packages/mongo/oplog_observe_driver.js:758:10)
I20180319-12:18:14.346(5.5)?     at OplogObserveDriver._runInitialQuery (packages/mongo/oplog_observe_driver.js:658:10)
I20180319-12:18:14.346(5.5)?     at packages/mongo/oplog_observe_driver.js:191:10
I20180319-12:18:14.346(5.5)?     at packages/mongo/oplog_observe_driver.js:15:9
I20180319-12:18:14.346(5.5)?     at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1186:26)
I20180319-12:18:14.347(5.5)?     at packages/meteor.js:502:25
I20180319-12:18:14.347(5.5)?     at runWithEnvironment (packages/meteor.js:1238:24)

这是我收到的完整异常信息,它在我将meteor从1.6.0更新到1.6.1时开始出现,在代码更改后只是更新了我的meteor。由于代码涉及保密,我无法展示代码,但可以给我一些提示,例如:helpers、meteor call、meteor method、router等等,请指出我应该查找代码的哪个部分。
或者有人能告诉我为什么会出现这个错误吗?

你可以使用常见的变量名重写代码,以避免泄露机密信息。提供一个代码示例对于帮助解决这类问题至关重要。 - Jankapunkt
我实际上没有示例代码,我有一个超过90个文件的整个网站。我不知道我应该修改哪部分代码,这就是为什么我询问应该查找什么来解决问题,例如:helpers、meteor call、meteor method、router等! - Akshat Gupta
1个回答

3
如果你还没有找到解决方案:
这个 bug 源于 Mongo 和 JSON/EJSON 处理 undefined 值的方式。
由于 JSON 中没有 undefined,所以在传递给 Mongo 之前,键值对会从查询中被剥离。这就是为什么错误提示会显示 "The query is: {}"。
Meteor 在下一个版本中会修复这个问题,但在此期间,你可以更新受影响的查询,测试 undefined 并将其替换为 null。
参考链接:https://github.com/meteor/meteor/issues/9619

如果有人需要帮助,我也遇到了这种情况,当在$or语句中使用未定义键/值对的查询时,就会出现这种情况:{"$or":[{"key":"value"},{},{},{},{},{}]} - HaveAGuess

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接