【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,当然前提是你的字段上有索引。

上一篇下一篇

猜你喜欢

热点阅读