忽略MongoDB文档中的null值

要忽略MongoDB中的null值,请在Aggregate()中使用"$ne":null。 让我们使用文档创建一个集合

> db.demo722.insertOne(
...    {
...       id:101,
...       details: [
...          { Name:""},
...          { Name: "David"},
...          {Name:null},
...          {Name:"Carol"}
...       ]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eab07d543417811278f5889")
}

在find()方法的帮助下显示集合中的所有文档-

> db.demo722.find();

这将产生以下输出-

{ "_id" : ObjectId("5eab07d543417811278f5889"), "id" : 101, "details" : [ { "Name" : "" }, { "Name" : "David" }, { "Name" : null }, { "Name" : "Carol" } ] }

以下是使用$ne 忽略MongoDB中的空值的查询-

> db.demo722.aggregate([
...    {"$unwind": "$details"},
...
...    {"$match": { "details.Name" :{ "$ne" : null } } }
... ])

这将产生以下输出-

{ "_id" : ObjectId("5eab07d543417811278f5889"), "id" : 101, "details" : { "Name" : "" } }
{ "_id" : ObjectId("5eab07d543417811278f5889"), "id" : 101, "details" : { "Name" : "David" } }
{ "_id" : ObjectId("5eab07d543417811278f5889"), "id" : 101, "details" : { "Name" : "Carol" } }