我想执行以下查询:

db.mycollection.find(HAS IMAGE URL)

正确的语法应该是什么?


当前回答

查询将是

db.mycollection.find({"IMAGE URL":{"$exists":"true"}})

它将返回所有具有“IMAGE URL”作为密钥的文档...........

其他回答

分享给未来的读者。

这个查询为我们工作(查询从MongoDB compass执行):

{
  "fieldName": {
    "$nin": [
      "",
      null
    ]
  }
}
db.<collectionName>.find({"IMAGE URL":{"$exists":"true"}, "IMAGE URL": {$ne: null}})
db.collection_name.find({"filed_name":{$exists:true}});

获取包含此filed_name的文档,即使它是空的。

警告

db.collection_name.find({"filed_name":{$ne:null}});

获取文档,它的field_name有一个值$ne到null,但这个值也可以是空字符串。

我的建议:

db.collection_name.find({ "field_name":{$ne:null},$where:"this.field_name.length >0"})

在理想情况下,您希望测试所有三个值,null、""或空(记录中不存在字段)

您可以执行以下操作。

db.users.find({$and: [{"name" : {$nin: ["", null]}}, {"name" : {$exists: true}}]})

查询将是

db.mycollection.find({"IMAGE URL":{"$exists":"true"}})

它将返回所有具有“IMAGE URL”作为密钥的文档...........