首页 > 解决方案 > 从满足条件的嵌套 MongoDocs 中获取价值

问题描述

我有一个有点奇怪的 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 中有一个数组,所以不知道该怎么做。

标签: pythonpython-3.xmongodb

解决方案


试试这个:

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

推荐阅读