MongoDB文档翻译-CRUD操作-查询null或缺失的字段
2017-02-27 08:13
639 查看
英文原文地址:https://docs.mongodb.com/v3.2/tutorial/query-for-null-fields/。
本文章属个人翻译,作个人学习之用,如有雷同,纯属巧合。如有错误之处,欢迎指正。
该文章的例子在
以下查询:
返回2个文档:
如果查询使用了稀疏索引,那么只会匹配null值,不会匹配缺失该字段的文档。
该查询只返回name字段值为null的文档:
该查询只返回不包含name字段的文档:
参见:
$type和$exists操作符的参考文档。
本文章属个人翻译,作个人学习之用,如有雷同,纯属巧合。如有错误之处,欢迎指正。
查询null或缺失的字段
MongoDB中不同的查询操作对待null值的行为也不一样。该文章的例子在
mongoshell中使用
db.collection.find()方法。为填充本例子中用到的users集合,请在
mongoshell中运行以下命令:
db.users.insert( [ { "_id" : 900, "name" : null }, { "_id" : 901 } ] )
相等过滤
{ name: null } 查询匹配包含name字段但值为null或者不包含name字段的文档。以下查询:
db.users.find( { name: null } )
返回2个文档:
{ "_id" : 900, "name" : null } { "_id" : 901 }
如果查询使用了稀疏索引,那么只会匹配null值,不会匹配缺失该字段的文档。
类型检查
{ name : {$type: 10} } 查询仅匹配含有name字段且值为null的文档,即:name字段的值是BSON类型的Null。db.users.find( { name : { $type: 10 } } )
该查询只返回name字段值为null的文档:
{ "_id" : 900, "name" : null }
存在性检测
{ name : { $exists: false}} 查询匹配不包含name字段的文档:db.users.find( { name : { $exists: false } } )
该查询只返回不包含name字段的文档:
{ "_id" : 901 }
参见:
$type和$exists操作符的参考文档。
相关文章推荐
- MongoDB文档翻译-CRUD操作-从查询中返回投影字段
- MongoDB文档翻译-CRUD操作-查询文档
- MongoDB文档翻译-CRUD操作-删除文档
- MongoDB文档翻译-CRUD操作-插入文档
- MongoDB文档翻译-CRUD操作-SQL与MongoDB对应表
- MongoDB文档翻译-CRUD操作-批量写操作
- MongoDB 文档的查询和插入操作
- MongoDB查询操作限制返回字段的方法
- 【翻译】MongoDB指南/CRUD操作(三)
- MongoDB快速入门学习笔记4 MongoDB的文档查询操作
- mongodb中查询某个字段不存在的文档
- MongoDB 文档的查询和插入操作
- MongoDB学习笔记——文档操作之查询
- MongoDB查询操作限制返回字段的方法
- Mongodb文档的查询操作
- Node.js MongoDB的安装 配置 数据库的CRUD操作 索引 学习笔记文档
- MongoDB快速入门笔记(四)之MongoDB查询文档操作实例代码
- MongoDB查询操作限制返回字段的方法
- MongoDB 操作手冊CRUD查询指针
- MongoDB 操作手册CRUD查询