mongodb - 如何在 Mongo 中查询 "is not null"?

我想执行以下查询:

db.mycollection.find(HAS IMAGE URL)

正确的语法应该是什么?

最佳答案

这将返回所有具有名为“IMAGE URL”的键的文档,但它们可能仍具有空值。

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

这将返回所有具有名为“IMAGE URL”的键非空值的文档。

db.mycollection.find({"IMAGE URL":{$ne:null}});

另外,根据文档,$exists 目前不能使用索引,但 $ne 可以。

编辑:由于对此答案感兴趣而添加了一些示例

鉴于这些插入:

db.test.insert({"num":1, "check":"check value"});
db.test.insert({"num":2, "check":null});
db.test.insert({"num":3});

这将返回所有三个文档:

db.test.find();

这将只返回第一个和第二个文档:

db.test.find({"check":{$exists:true}});

这将只返回第一个文档:

db.test.find({"check":{$ne:null}});

这将只返回第二个和第三个文档:

db.test.find({"check":null})

关于mongodb - 如何在 Mongo 中查询 "is not null"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4057196/

相关文章:

mongodb - 在 MongoDB 中实现数据版本控制的方法

mongodb - 如何导出 MongoDB 中的所有集合?

javascript - 如何在 Mongoose 中更新/插入文档?

javascript - 如何使用 Node.js Mongoose 删除文档?

mongodb - 使用另一个字段的值更新 MongoDB 字段

mongodb - NoSQL (MongoDB) vs Lucene (或 Solr) 作为你的数

mongodb - 如何从 MongoDB 文档中完全删除字段?

mongodb - 如何从 MongoDB 获取随机记录?

mongodb - 向 MongoDB 集合中的每个文档添加新字段

mongodb - 获取集合中所有键的名称