我想执行以下查询:
db.mycollection.find(HAS IMAGE URL)
正确的语法应该是什么?
我想执行以下查询:
db.mycollection.find(HAS IMAGE URL)
正确的语法应该是什么?
当前回答
在理想情况下,您希望测试所有三个值,null、""或空(记录中不存在字段)
您可以执行以下操作。
db.users.find({$and: [{"name" : {$nin: ["", null]}}, {"name" : {$exists: true}}]})
其他回答
有一句话是最好的:
db.mycollection.find({ 'fieldname' : { $exists: true, $ne: null } });
在这里,
我的收藏:放置你想要的收藏名称
Fieldname:放置你想要的字段名
解释:
$exists:当为true时,$exists匹配包含该字段的文档,包括字段值为空的文档。如果为false,则查询只返回不包含该字段的文档。
$ne选择字段值不等于指定值的文档。这包括不包含该字段的文档。
所以在你提供的情况下,下面的查询将返回所有imageurl字段存在且非空值的文档:
db.mycollection.find({ 'imageurl' : { $exists: true, $ne: null } });
分享给未来的读者。
这个查询为我们工作(查询从MongoDB compass执行):
{
"fieldName": {
"$nin": [
"",
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"})
查询将是
db.mycollection.find({"IMAGE URL":{"$exists":"true"}})
它将返回所有具有“IMAGE URL”作为密钥的文档...........
检查mongo compass中列是否存在的最简单方法是:
{ 'column_name': { $exists: true } }