我知道Multikeys允许您有效地查找具有数组作为字段的对象,其中该数组中存在特定的值。在MongoDB中,你可以索引一个字段来查找在数组中没有值的对象吗?
例如,你可以存储对象:
{
"ar":["book","cat"]
}
,然后提供的“AR”字段建立索引,你可以说:
db.blah.find({"ar":"cat"})
它将有效地发现上面目的。
然而,会是这样的工作:
db.blah.find({"ar":{$not : "cat"}})
在这里,我想找到这里的“AR”阵列不不包含“猫”中的所有对象。此查询是否有效,如果有效,它会有效吗? (即它会使用“ar”字段上的索引吗?)
这个想法是,“猫”会出现在除了一些条目之外的所有条目中。话虽如此,你链接到的问题只涉及一个简单的“不等于”字段,它并不是指数组中的“不包含”。 – sanity 2012-02-22 01:21:52