【发布时间】:2021-01-07 08:10:10
【问题描述】:
我在 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})
{ "_id": 0, "holdings": [{"name": "item1", "code": "code1", "quantity": 300}] }
运行上面的代码给了我这个输出,我可以通过使用得到数量值:
data["holdings"][0]["quantity]
300
但是,这似乎是一种获取单个值的相当迂回的方式。有没有一种方法可以在不获取包含所需对象的持有数组的情况下查询与代码查询匹配的特定键的值?
【问题讨论】:
标签: python database mongodb pymongo