Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 过滤字段而不输入空值_Mongodb_Aggregation Framework - Fatal编程技术网

Mongodb 过滤字段而不输入空值

Mongodb 过滤字段而不输入空值,mongodb,aggregation-framework,Mongodb,Aggregation Framework,收藏: { "_id" : ObjectId("5338ec2a5b5b71242a1c911c"), "people" : [ { "name" : "Jhon" }, { "age" : "30" }, { "weight" : "80" } ]} 查询:db.tmp.aggregate({$project:{“people.name”:1}}) 本期: { "result" : [

收藏:

{
"_id" : ObjectId("5338ec2a5b5b71242a1c911c"),
"people" : [ 
    {
        "name" : "Jhon"
    }, 
    {
        "age" : "30"
    }, 
    {
        "weight" : "80"
    }
]}
查询:db.tmp.aggregate({$project:{“people.name”:1}})

本期:

{
"result" : [ 
    {
        "_id" : ObjectId("5338ec2a5b5b71242a1c911c"),
        "people" : [ 
            {
                "name" : "Jhon"
            }, 
            {}, 
            {}
        ]
    }
],
"ok" : 1}
如何在没有{}的情况下仅显示“name”字段为空?

在中处理数组时应该使用

db.tmp.aggregate([
{“$REWIND”:“$people”},
{“$match”:{“people.name”:{“$exists”:true}},
{“$project”:{“people.name”:1}
])
如果要将其作为阵列,请分组:

db.tmp.aggregate([
{“$REWIND”:“$people”},
{“$match”:{“people.name”:{“$exists”:true}},
{“$group”:{
“\u id”:“$\u id”,
“people”:{“$push”:{“name”:“$people.name”}
}}
])