从满足条件的嵌套MongoDocs中获取价值

时间:2019-05-10 11:33:14

标签: python python-3.x mongodb

我有一个奇怪的mongoDB结构。不幸的是,我只是mongo的初学者,因此无法编写适当的查询来获取必要的值。

这是mongo示例:

{"save1":
    {"date": "2019-05-05",
    "data":[
            {"data":{
                "base_id":1,
                "name": "name_1",
                "rarity" : 7,
                "gear": 12}
                },
            {"data":{
                "base_id":2,
                "name": "name_3",
                "rarity" : 5,
                "gear": 8}
                },
            {"data":{
                "base_id":3,
                "name": "name_3",
                "rarity" : 2,
                "gear": 10}
                },
            {"data":{
                "base_id":4,
                "name": "name_4",
                "rarity" : 3,
                "gear": 2}
                }
            ]}

}

我需要“稀有性”和“齿轮”,base_id为3的情况

{“稀有度”:2,“齿轮”:10}

我想投影是可能的,但是因为我在save1.data中有一个数组,所以不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

尝试一下:

db.test.aggregate({$project: {"data": "$save1.data"}}, {$unwind: "$data"}, {$match: {"data.data.base_id": 3}})