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

Posted

技术标签:

【中文标题】MongoDB:通过不存在的字段查找文档?【英文标题】:MongoDB: Find a document by non-existence of a field? 【发布时间】:2012-01-23 22:41:40 【问题描述】:

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

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

"fruit":"apple", "color":"red"


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

【问题讨论】:

Mongo: find items that don't have a certain field的可能重复 你也可以试试db.mycollection.find( "price" : null ) 【参考方案1】:

试试$exists 运算符:

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

看看its documentation。

【讨论】:

+1。但是,请记住,此类查询不能使用索引,并且在大型集合上可能会非常慢。 好点——谢谢。我知道这个警告适用于 MongoDB 版本 1.8.x 及之前的版本;但我认为具有 $exists 字段约束的查询现在可以使用 2.0 版中的索引...?

以上是关于MongoDB:通过不存在的字段查找文档?的主要内容,如果未能解决你的问题,请参考以下文章

选择字段不存在、为空或为假的 MongoDB 文档?

MongoDB:查找没有子文档符合条件的文档

MongoDB:查找没有子文档符合条件的文档

mongodb使用条件查找文档并更新相应文档中的另一个字段

使用 mongoose 通过 update 方法向 mongodb 中的现有文档添加新字段

使用 mongoose 通过 update 方法向 mongodb 中的现有文档添加新字段