我查询客户端以获取所有具有徽标的客户端。 我使用这个查询:
Client.find({logo: {$ne: "", $ne: null }}, { _id: 1, logo: 1 })
但我得到了这个结果:
"clients": [
{
"_id": 15,
"logo": ""
},
{
"_id": 90,
"logo": "86cd1fa56947629aeee50e5de2cd0a2c.png"
},
{
"_id": 115,
"logo": ""
},
{
"_id": 189,
"logo": "add5e6fd2b19d7bd5a5827fb03f114e8.gif"
}]
我不知道为什么我仍然从结果中得到“logo”:“”。我也尝试了相同的查询格式。
Client.find({ $and: [{ logo: {$ne: null} }, { logo: { $ne: "" } } ]}, { _id: 1, logo: 1 })
但仍然得到相同的结果。有人可以帮我吗?
答案 0 :(得分:0)
您不能在同一个JS对象中使用相同的属性名称两次,因此{$ne: "", $ne: null }
变为{$ne: null }
,因为最后一次使用该属性。
相反,您可以使用$nin
运算符查找与这些值不匹配的文档:
Client.find({logo: {$nin: ["", null]}})
请注意,我希望您的$and
查询有效,所以我不确定那里发生了什么。