Shr*_*tra 13 mongoose mongodb mongodb-query
我试图找到电子邮件存在的所有文件.
我正在尝试以下查找查询:
{ "email": {$exists:true, $ne:null, $ne:""}}
Run Code Online (Sandbox Code Playgroud)
我仍然收到电子邮件所在的文件null.
谁能告诉我我做错了什么?
Nei*_*unn 28
你想要$nin这里:
.find({ "email": { "$nin": [ null, "" ] } })
Run Code Online (Sandbox Code Playgroud)
问题是$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"
}
Run Code Online (Sandbox Code Playgroud)
回报:
{
"_id" : ObjectId("59633c28f5f11516540d1191"),
"a" : 1.0,
"email" : "fred"
}
Run Code Online (Sandbox Code Playgroud)
$exists当你实际测试一个值时,你也不需要.它已经暗示是"存在".