【mongoDB】mongoDB 中查询字段为空或非空的集合
2021-11-15 本文已影响0人
Bogon
1. $ne
$ne:表示 not equal 就是不等于的意思。
#查询某字段不为空的数据
db.test.find({fieldName: {$ne:null}})
db.getCollection('test').find({'CurrentApproverList': {$ne:null}})
# 查询字段等于空的数据
db.test.find({fieldName: {$eq:null}})
查询sex为null的用户
2. $exists
$exists:表示是否存在。值为false表示不存在,值为true表示存在。
# 查询某字段不为空的数据
db.test.find({fieldName: {$exists:true}})
# /查询某字段不存在的数据
db.test.find({fieldName: {$exists:false}})
查询出一个集合 test 中 type 为空的记录
db.getCollection('test').find({type: {$in:[null]}})
或者直接使用下面的查询
db.getCollection('test').find({type: null})
也可以在字段上加上 $exists:true
db.getCollection('test').find({type:{$in:[null],$exists:true}})
查询 type 值不为空时(not null )也可以使用 $ne:null
db.getCollection("test").find({type:{$ne:null}})
注意:$exists 无法利用到索引, 但 $ne 和 $in 可以用上索引, 所以处于性能的考虑尽可能用 $ne:null,当然前提是你的字段上有索引。