我想查询MongoDB,在results
顶级文档中找到它有多少嵌套文档的值0
。
例如,在此集合中:
{name: "mary", results: {"foo" : 0, "bar" : 8}}
{name: "bob", results: {"baz" : 9, "qux" : 0}}
{name: "leia", results: {"foo" : 9, "norf" : 5}}
我的查询应返回2
,因为其中两个文档的0
为results
的嵌套文档的值。
这是我的尝试
db.collection.find({$where : function() {
for (var key in this.results) {
if (this.results[key] === 0) { return true;} } return false; } })
适用于上述数据集,但速度太慢。我的真实数据是100k文档,每个文档在results
内有500个嵌套文档,上面的查询需要几分钟。是否可以更快地设计此查询?
答案 0 :(得分:1)