Python 使用PyMongo查询MongoDB中嵌入文档的值

Python 使用PyMongo查询MongoDB中嵌入文档的值,python,database,mongodb,pymongo,Python,Database,Mongodb,Pymongo,我在MongoDB中有一个文档,看起来像这样 { "_id": 0, "cash_balance": 50, "holdings": [ { "name": "item1", "code": "code1", "quantity"

我在MongoDB中有一个文档,看起来像这样

{
    "_id": 0,
    "cash_balance": 50,
    "holdings": [
        {
            "name": "item1",
            "code": "code1",
            "quantity": 300
        },
        {
            "name": "item2",
            "code": "code2",
            "quantity": 100
        }
    ]
}
我想查询此特定文档,并获取holdings数组中对象的数量值,该数组的code匹配“code1”。可以假设会有一场比赛

data = collection.find_one({"_id": 0, "holdings.code": "code1"}, {"holdings.$.quantity": 1})
{{u id:0,“持有量”:[{“名称”:“项目1”,“代码”:“代码1”,“数量”:300}]}

运行上述代码可以得到此输出,我可以使用以下方法获得数量值:

data["holdings"][0]["quantity]
三百


然而,这似乎是获得单个值的一种相当迂回的方法。有没有一种方法可以在不获取包含所需对象的holdings数组的情况下查询与代码查询匹配的特定键的值?

尝试将聚合方法与$unwind一起使用

$unwind执行以下操作:

从输入文档解构数组字段以输出每个元素的文档。每个输出文档都是输入文档,数组字段的值由元素替换

我为你树立了一个榜样