如何搜索集合中缺少MongoDB中某个字段的文档?
答案 0 :(得分:162)
是的,可以使用$exists:
db.things.find( { a : { $exists : false } } ); // return if a is missing
如果为true,则$ exists匹配包含该字段的文档,包括字段值为null的文档。如果为false,则查询仅返回不包含该字段的文档。
答案 1 :(得分:50)
如果您不关心字段是否缺失或null
(或者它永远不会null
),那么您可以使用稍短的和更安全:
db.things.find( { a : null } ); // return if a is missing or null
它更安全,因为$exists
将返回true
,即使该字段为空,这通常不是所需的结果,并且可能导致NPE。