Mongodb过滤器通过父字段嵌入文档

时间:2017-10-23 18:51:12

标签: mongodb mongo-shell

我的mongodb中有以下结构:

{
    "preferred_child": "child_id_2",
    "children": [
        {
            "id": "child_id_1"
        },
        {
            "id": "child_id_2"
        }
    ]
}

使用mongo shell,我如何选择父数据和只有首选子项(具有“id”等于父项“preferred_child”id的子项)?

1 个答案:

答案 0 :(得分:1)

尝试使用.aggregate()这样的过滤器:

db.parent.aggregate(
    [
        {
            $project:
                {
                preferred_child : 1,
                children:{
                    $filter:{
                        input:"$children",
                        as:"item",
                        cond:{
                            $eq:["$preferred_child","$$item.id"]
                        }
                    }
                }
            }
        }
    ]
)