Mongodb $exists操作符

Posted by 撒得一地 on 2016年4月1日 in 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 }

本文地址:http://coderschool.cn/1765.html

上一篇:

下一篇:

相关推荐

网站地图|XML地图

Copyright © 2015-2024 技术拉近你我! All rights reserved.
闽ICP备15015576号-1 版权所有©psz.