MongoDB的空值查询问题

2020-03-20  本文已影响0人  兰陵笑_生

查询有值的情况

大家都知道可以使用

db.mycollection.find({"myField":{$exists:true}});

来查询出指定字段值不存在的所有集何。

可是假设这个字段的值为null,包含这个字段的集合仍然会被筛选出来。

需要查询出某个字段存在且不为空的时候就需要用到

db.mycollection.find({"myfield":{$ne:null}});

来查询。

并且 $exists 无法利用到索引, 但$NE 可以用上索引, 出于于性能的考虑尽可能用 $ne:null

查询无值的情况

1.查询集合中字段的值为null或者不存在

db.mycollection.find({"myfield":null});

2.查询集合中字段的值为null,(仅返回字段的值为null的数据,不会返回不存在的)

db.myCollection.find({ “myField” : { $type : 10 } } )

db.myCollection.find({“myField”:{“$in”:[null], “$exists”:true}})

3.查询集合中字段的值不存在(不会返回字段的值为null的数据)

上一篇下一篇

猜你喜欢

热点阅读