Mongodb $exists操作符
Posted by 撒得一地 on 2016年4月1日 in Mongodb教程
上一篇: Mongodb $size操作符
下一篇: Mongodb索引介绍
下一篇: Mongodb索引介绍
$exists语法
{ field: { $exists: <boolean> } }
说明
当<boolean>的值为true时,则匹配数据库中含有field这个字段的文档,也包括field这个字段为空的文档。如果<boolean>的值为false,那么查询只返回不包括该field该字段的文档。简单的说,$exists 就是判断一个字段是否存在。
MongoDB中的 $exists 和SQL操作符 exists 不是一个等同的概念。对于SQL的 exists ,涉及到了 $in 这个操作符的概念。
实例
查看下面的例子:
db.test.find({qty:{$exists:true,$nin:[5,15]}})
上面这个查询输出test数据库中存在qty这个字段,而且qty的值不等于5或15的所有文档。
存在Null值时
假设records数据库中存在如下文档:
{ a: 5, b: 5, c: null } { a: 3, b: null, c: 8 } { a: null, b: 3, c: 9 } { a: 1, b: 2, c: 3 } { a: 2, c: 5 } { a: 3, b: 2 } { a: 4 } { b: 2, c: 4 } { b: 2 } { c: 6 }
用 $exists: true 查询
用 $exists 操作符对字段 a 进行查询:
>db.records.find( { a: { $exists: true } } )
上面的查询将输出包含字段 a 或者字段 a 的值为null的文档结果:
{ a: 5, b: 5, c: null } { a: 3, b: null, c: 8 } { a: null, b: 3, c: 9 } { a: 1, b: 2, c: 3 } { a: 2, c: 5 } { a: 3, b: 2 } { a: 4 }
用 $exists: false 查询
用 $exists 操作符对字段 b 进行查询:
db.records.find( { b: { $exists: false } } )
上面的查询将输出不包含字段 b 的文档:
{ a: 2, c: 5 } { a: 4 } { c: 6 }
上一篇: Mongodb $size操作符
下一篇: Mongodb索引介绍
下一篇: Mongodb索引介绍