$exists

在本页面

  • 定义

  • 例子

定义

  • $exists

    • 语法:{ field: { $exists: <boolean> } }

<boolean>是 true 时,$exists匹配包含该字段的文档,包括字段 value 为null的文档。如果<boolean>是 false,则查询仅返回不包含该字段的文档。

MongoDB $exists 不**对应 SQL operator exists。对于 SQL exists,请参阅$in operator。

也可以看看
$nin,$in和查询空或缺少字段。

例子

存在与不等于

考虑以下 example:

db.inventory.find( { qty: { $exists: true, $nin: [ 5, 15 ] } } )

此查询将选择inventory集合中存在qty字段且其 value 不等于515的所有文档。

空值

以下示例使用名为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

以下查询指定查询谓词a: { $exists: true }

db.records.find( { a: { $exists: true } } )

结果包含那些包含字段a的文档,包括其字段a包含 null value 的文档:

{ 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

以下查询指定查询谓词b: { $exists: false }

db.records.find( { b: { $exists: false } } )

结果包含那些不包含字段b的文档:

{ a: 2, c: 5 }
{ a: 4 }
{ c: 6 }