翻译或纠错本页面
- MongoDB CRUD 操作 >
- 查询文档 >
- 查询值为Null或不存在的字段
查询值为Null或不存在的字段¶
MongoDB中不同的运算符对待 null 值不一样.
本页中的示例使用 mongo shell中的 db.collection.find() 方法.在:program:mongo shell中运行如下命令以向示例中涉及到的 users 集合填入数据:
db.users.insert(
[
{ "_id" : 900, "name" : null },
{ "_id" : 901 }
]
)
相等过滤器¶
The { name : null } query matches documents that either contain the name field whose value is null or that do not contain the name field.
给出如下查询:
db.users.find( { name: null } )
该查询返回这两个文档:
{ "_id" : 900, "name" : null }
{ "_id" : 901 }
如果该查询使用了 sparse 索引,不管怎样,那么该查询将仅仅匹配 null 值,而不匹配不存在的字段.
类型筛查¶
{ name : { $type: 10 } } 查询 仅仅 匹配那些包含值是 null 的 name 字段的文档,亦即 条目 字段的值是BSON类型中的 Null (即 10 ):
db.users.find( { name : { $type: 10 } } )
该查询只返回文 条目 字段是 null 值的文档:
{ "_id" : 900, "name" : null }