【MongoDB】查看文档(元素查询)$exists
$exists,当为true时,$ exists与包含匹配该字段的文档(包括字段值为null)。 如果为false,则查询仅返回不包含该字段的文档。
1 |
{ field: { $exists: <boolean> } } |
1:测试数据
1 2 3 4 5 6 7 8 9 10 11 12 |
> db.t.find() { "_id" : ObjectId("5982b8b2c566b07b8733e787"), "a" : 5, "b" : 5, "c" : null } { "_id" : ObjectId("5982b8b2c566b07b8733e788"), "a" : 3, "b" : null, "c" : 8 } { "_id" : ObjectId("5982b8b2c566b07b8733e789"), "a" : null, "b" : 3, "c" : 9 } { "_id" : ObjectId("5982b8b2c566b07b8733e78a"), "a" : 1, "b" : 2, "c" : 3 } { "_id" : ObjectId("5982b8b2c566b07b8733e78b"), "a" : 2, "c" : 5 } { "_id" : ObjectId("5982b8b2c566b07b8733e78c"), "a" : 3, "b" : 2 } { "_id" : ObjectId("5982b8b2c566b07b8733e78d"), "a" : 4 } { "_id" : ObjectId("5982b8b2c566b07b8733e78e"), "b" : 2, "c" : 4 } { "_id" : ObjectId("5982b8b2c566b07b8733e78f"), "b" : 2 } { "_id" : ObjectId("5982b8b3c566b07b8733e790"), "c" : 6 } > |
2:包含a元素的文档
1 2 3 4 5 6 7 8 9 |
> db.t.find( { a: { $exists: true } } ) { "_id" : ObjectId("5982b8b2c566b07b8733e787"), "a" : 5, "b" : 5, "c" : null } { "_id" : ObjectId("5982b8b2c566b07b8733e788"), "a" : 3, "b" : null, "c" : 8 } { "_id" : ObjectId("5982b8b2c566b07b8733e789"), "a" : null, "b" : 3, "c" : 9 } { "_id" : ObjectId("5982b8b2c566b07b8733e78a"), "a" : 1, "b" : 2, "c" : 3 } { "_id" : ObjectId("5982b8b2c566b07b8733e78b"), "a" : 2, "c" : 5 } { "_id" : ObjectId("5982b8b2c566b07b8733e78c"), "a" : 3, "b" : 2 } { "_id" : ObjectId("5982b8b2c566b07b8733e78d"), "a" : 4 } > |
3:不包含b元素的文档
1 2 3 4 5 |
> db.t.find( { b: { $exists: false } } ) { "_id" : ObjectId("5982b8b2c566b07b8733e78b"), "a" : 2, "c" : 5 } { "_id" : ObjectId("5982b8b2c566b07b8733e78d"), "a" : 4 } { "_id" : ObjectId("5982b8b3c566b07b8733e790"), "c" : 6 } > |