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

k00*_*00k 166 mongodb

有没有办法指定"文件不包含字段"的条件?

例如,我想只找到这两个中的第一个,因为它没有"价格"字段.

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


{"fruit":"banana", "color":"yellow", "price":"2.00"}
Run Code Online (Sandbox Code Playgroud)

dam*_*ier 312

试试$exists运营商:

db.mycollection.find({ "price" : { "$exists" : false } })
Run Code Online (Sandbox Code Playgroud)

并查看其文档.

  • +1.但是,请记住,此类查询无法使用索引,并且在大型集合上可能会非常慢. (11认同)
  • 好点 - 谢谢.我知道这个警告在MongoDB版本1.8.x和之前都适用; 但我认为使用$ exists字段约束的查询现在可以使用版本2.0中的索引......? (9认同)