MongoDB:通过不存在的字段查找文档?


173

有没有一种方法可以指定“文档不包含字段的条件”的条件?

例如,我只想查找这2个中的第一个,因为它没有“ price”字段。

{"fruit":"apple", "color":"red"}


{"fruit":"banana", "color":"yellow", "price":"2.00"}


3
您也可以尝试db.mycollection.find({ "price" : null })
evilReiko

Answers:


329

尝试$exists运算符:

db.mycollection.find({ "price" : { "$exists" : false } })

并参阅其文档


12
+1。但是,请记住,此类查询不能使用索引,并且在大型集合上可能会非常慢。
mnemosyn 2011年

10
好点-谢谢。我知道这一警告在MongoDB 1.8.x及更高版本中适用。但是我认为具有$ exists字段约束的查询现在可以在2.0版中使用索引了……?
阻尼器
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.