Mongo:查找没有特定字段的项目

时间:2011-04-19 16:12:23

标签: mongodb null exists

如何搜索集合中缺少MongoDB中某个字段的文档?

2 个答案:

答案 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。