{$ ne:“”,$ ne:null}无效

时间:2018-02-23 00:58:37

标签: mongodb mongodb-query

我查询客户端以获取所有具有徽标的客户端。 我使用这个查询:

 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 })

但仍然得到相同的结果。有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您不能在同一个JS对象中使用相同的属性名称两次,因此{$ne: "", $ne: null }变为{$ne: null },因为最后一次使用该属性。

相反,您可以使用$nin运算符查找与这些值不匹配的文档:

Client.find({logo: {$nin: ["", null]}})

请注意,我希望您的$and查询有效,所以我不确定那里发生了什么。