查询空字段或缺少字段 MongoDB中不同的查询操作符对待null值是不同的。

    该页面提供了使用mongo shell中的db.collection.find()方法查询空值的操作示例。 此页面上的示例使用库存收集。 要填充库存收集,请运行以下命令:

    这个页面提供了使用mongo shell中的 db.collection.find()方法查询null值的操作示例。此页上的示例使用 inventory 集合。要填充 inventory集合,请运行以下操作:

    1. db.inventory.insertMany([
    2. { _id: 1, item: null },
    3. { _id: 2 }
    4. ])

    平等过滤器

    {item:null}查询匹配包含值是nullitem字段或不包含item字段的文档。

    1. db.inventory.find( { item: null } )

    该查询返回集合中的两个文档。

    类型检查

    {item:{$ type:10}}查询只匹配包含item字段值为null的文档; 即item字段的值为BSON TypeNull(类型编号10):

    1. db.inventory.find( { item : { $type: 10 } } )

    该查询仅返回item字段值为null的文档。

    存在检查

    以下示例查询不包含字段的文档。

    {item:{$ exists:false}}查询与不包含item字段的文档匹配:

    1. db.inventory.find( { item : { $exists: false } } )

    该查询仅返回不包含项目字段的文档。

    另请参考:

    $type$exists运算符的参考文档。

    译者:杨帅

    校对:杨帅

    参见

    原文 - Query for Null or Missing Fields