[英]Updating nested MongoDB collection (Pymongo)
-編輯-
如何根據 1 個以上的條件使用 Pymongo 更新嵌套集合?
我的文檔是這樣的:
[{'_id': ObjectId('613eb154aee899694f934259'),
'company':
[{'name': 'Flower shop',
'persons':
[{'personId': '1000',
'personIdType': 'Passport/Others'},
{'personId': '3000',
'personIdType': 'Passport/Others'}
]}
]}
]
我想將 personId 1000 更新為 2000 。 因此,兩個條件是:objectId = '613eb154aee899694f934259' AND the personId = 1000
我很感激任何幫助。
@ray 的回答是正確的。 但是您必須將他的解決方案轉換為python。
下面的答案是在python中轉換的@ray答案的精確復制。
from pymongo import MongoClient
from bson.objectid import ObjectId
col = MongoClient()["temp"]["tmp9"]
col.update_many({
"_id": ObjectId("613eb154aee899694f934259"),
}, {
"$set": {
"company.$[].persons.$[p].personId": "2000",
}
},
array_filters=[{"p.personId": "1000"}]
)
嘗試使用$set
來設置personId
字段。 您將需要 1 個$[]
在persons
后面persons
因為persons
也是數組字段。
db.collection.update({
"_id": ObjectId("613eb154aee899694f934259")
},
{
"$set": {
"company.$[].persons.$[].personId": 2000
}
})
這是Mongo 游樂場供您參考。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.