MongoDB 查询技巧(2) - null

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB 查询技巧(2) - null相关的知识,希望对你有一定的参考价值。

参考技术A MongoDB 里面存的 文档, 字段可以 不存在 , 可以 为 null , 可以是 具体的值
在开发过程中,经常需要去 查询某个字段有值的所有文档 , 那么此时怎么写才是正确且简单的呢?

新建一个集合 yu_fa_ce_shi
新增三条数据,如下图所示
a desc 字段为 null
b desc 字段有值,是一个字符串
c desc字段不存在

我们之前 查询有值 的场景是这样写的

功能是正常的

现在我们来研究一下有没有简化的写法

执行之后可以看到,a b 都查询出来了,也就是说
eq(null) 等价于 有值且为null 和 字段不存在 两种场景的并集(也就是 in )

再看一下反向的

执行之后得到结论: ne(null) 等价于 有值且不为null

由上可知 ne(null) 找到的是 有值且不为null , 但是因为 MongoDB 的字段可以随便存,类型没有限制
所以, ne(null) 对取出来的值类型没有做限制
那么,如果想要限制一下,比如: 有值且为 string 这种查询怎么写呢?

经过了解, MongoDB 有一种操作符叫 type type

截图看一下

所以我们的查询语句变为

结果如下,是符合我们预期的

那么问题来了,如何找到 有值且为null 呢?
根据上面的 string , 同理可知

type

以上是关于MongoDB 查询技巧(2) - null的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB 数据库条件查询技巧

MongoDB 数据库条件查询技巧

MongoDB 查询技巧(3) - 数组操作

java 如何查询mongodb字段名称?

mongodb学习——函数使用的小技巧

mongoDB索引查询