这是我的数据结构。
[{
"name": "David",
"lastname": "",
},
{
"name": "Angela"
}]
“姓氏”有时存在,有时不存在,有时为“”。
我想获取所有姓氏不等于“”的行。但这不起作用。当 lastname 为 ""和 lastname 根本不存在时,它会返回两行。在上面的示例中,我只想获取 David 节点。
db.collection.find( {"lastname": {"$ne": ""}} )
最佳答案
db.collection.find({"lastname" : {"$exists" : true, "$ne" : ""}})
在 mongo shell 中(省略 id 以节省空间)
> db.collection.find()
{ "name" : "Angela" }
{ "name" : "David", "lastname" : "" }
{ "name" : "Kyle", "lastname" : "Test" }
{ "name" : "John", "lastname" : null }
> db.collection.find({"lastname" : {"$exists" : true, "$ne" : ""}})
{ "name" : "Kyle", "lastname" : "Test" }
{ "name" : "John", "lastname" : null }
如果您还想过滤掉与 null 值的匹配项,您需要按如下方式调整条件(我们也可以将 $exists 删除为 "$ne":null 负责这一点)
> db.collection.find({$and:[{"lastname": {"$ne": null}}, {"lastname": {"$ne": ""}}]})
{ "name" : "Kyle", "lastname" : "Test" }
https://stackoverflow.com/questions/9694223/
相关文章:
c# - 如何将 BsonDocument 对象反序列化回类
javascript - Meteor.js 部署到 "example.com"还是 "www.ex
java - 为 MongoDB Java 驱动程序配置日志记录
node.js - 按日期时间字段获取最新的 MongoDB 记录
node.js - 使用 Mongoose (MongoDB) 查询嵌套文档
mongodb - 如何在 Mongoose Schema 中表示 MongoDB GeoJSON
python - 使用 PyMongo 将 Pandas 数据框插入 mongodb