-編輯-
如何根據 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
我很感激任何幫助。
uj5u.com熱心網友回復:
嘗試使用$set設定personId欄位。您需要arrayFilter為陣列指定過濾條件。
db.collection.update({
_id: ObjectId("613eb154aee899694f934259")
},
{
$set: {
"company.$[].persons.$[p].personId": 2000
}
},
{
arrayFilters: [
{
"p.personId": "1000"
}
]
})
這是Mongo 游樂場供您參考。
uj5u.com熱心網友回復:
@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"}]
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/325184.html
標籤:Python 数据库 mongodb nosql 皮蒙戈
上一篇:在QlikSaaS中管理資料連接
下一篇:分組分頁
