我试图做一些MongoDB“$或”查询的分析,我在Mongo中的'explain()'命令有问题贝壳。当我使用find命令运行我的查询时,它可以正常工作并返回一条记录。当我钉在了“解释()”在查找结束(),但是,我得到以下错误:
uncaught exception: error: { "$err" : "invalid operator: $or", "code" : 10068 }
我想下面的查询:
db.people.find({"query" :
{"$or" : [
{"site" : "mysite", "site_id" : "587125722"},
{"user_id" : ObjectId("4fb811aae4b0b628b485a58d")}
]},
"$orderby" : { "global_id" : 1, "user_id" : 1}
})
如果我将“$或”更改为“或”,explain()工作正常,但查询返回0结果。我的印象是,他们的语法应该与解释(或不解释)相同,所以我做错了什么?我使用的是2.0.4版本。感谢任何可能帮助的人。
妈呀,这是完全奏效。除了使用 .count()之外,我遇到了同样的问题,并且出于完全相同的原因而失败。按照您和Matt指定的方式正确解包查询。谢谢! –
2017-01-08 07:42:45