查询不等于 null 或空的地方
Posted
技术标签:
【中文标题】查询不等于 null 或空的地方【英文标题】:Query where not equal to null or empty 【发布时间】:2017-12-13 21:38:22 【问题描述】:我正在尝试查找存在电子邮件的所有文档。
我正在尝试以下查找查询:
"email": $exists:true, $ne:null, $ne:""
我仍然收到电子邮件为null
的文档。
谁能告诉我我做错了什么?
【问题讨论】:
非常感谢老兄!有效。甚至我一发布问题就怀疑同样的事情,这是因为这两个 $ne。 【参考方案1】:你想在这里$nin
:
.find( "email": "$nin": [ null, "" ] )
问题是$ne
重复两次并覆盖。您可以使用$or
,但$nin
更短:
给定:
"_id" : ObjectId("59633c28f5f11516540d118e"),
"a" : 1.0
"_id" : ObjectId("59633c28f5f11516540d118f"),
"a" : 1.0,
"email" : ""
"_id" : ObjectId("59633c28f5f11516540d1190"),
"a" : 1.0,
"email" : null
"_id" : ObjectId("59633c28f5f11516540d1191"),
"a" : 1.0,
"email" : "fred"
只是返回:
"_id" : ObjectId("59633c28f5f11516540d1191"),
"a" : 1.0,
"email" : "fred"
当你实际测试一个值时,你也不需要$exists
。它已经暗示它确实“存在”。
【讨论】:
以上是关于查询不等于 null 或空的地方的主要内容,如果未能解决你的问题,请参考以下文章