MongoDB,选择嵌套数组字段

MQ8*_*Q87 2 mongodb mongodb-query aggregation-framework

我有一个文档嵌套数组的集合,我只想选择下面的数组,有可能吗?

我已经尝试过了,但是没有用:

db.collection.find({},{'family.children.$.toys' :1})
Run Code Online (Sandbox Code Playgroud)

文件范例

   {
    "id":1000,
    "name": "Bob",
    "surname":"The Builder",
    "family":{
        "size":2,
        "status": "happy",
        "children":[{
            "name":"Jim",
            "school": "St. Mary",
            "toys":[{
                "name":"Lego"
            },
            {
                "name":"Playstation"
            }]
        },
        {
            "name":"Kate",
            "school": "St. Mary",
            "toys":[{
                "name":"Xbox"
            },
            {
                "name":"Barbie"
            }]
        }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

预期结果(仅提取玩具清单):

{
_id:1000,
family:{
    childrens:[{
        toys:[{
            name:Lego
        },
        {
            name:Playstation
        }]
    },
    {
        toys:[{
            name:Xbox,
        },
        {
            name:Barbie
        }]
    }
    ]
}}
Run Code Online (Sandbox Code Playgroud)

Cet*_*soz 6

db.collection.find({},{'id':1, 'family.children.toys' :1, '_id':0})
Run Code Online (Sandbox Code Playgroud)

样本输出:

{
        "id" : 1000,
        "family" : {
                "children" : [
                        {
                                "toys" : [
                                        {
                                                "name" : "Lego"
                                        },
                                        {
                                                "name" : "Playstation"
                                        }
                                ]
                        },
                        {
                                "toys" : [
                                        {
                                                "name" : "Xbox"
                                        },
                                        {
                                                "name" : "Barbie"
                                        }
                                ]
                        }
                ]
        }
}
Run Code Online (Sandbox Code Playgroud)