我在 mongodb 中有這個檔案
{
"_id": {
"$oid": "62644af0368cb0a46d7c2a95"
},
"insertionData": "23/04/2022 19:50:50",
"ipfsMetadata": {
"Name": "data.json",
"Hash": "Qmb3FWgyJHzJA7WCBX1phgkV93GiEQ9UDWUYffDqUCbe7E",
"Size": "431"
},
"metadata": {
"sessionDate": "20220415 17:42:55",
"dataSender": "user345",
"data": {
"height": "180",
"weight": "80"
},
"addtionalInformation": [
{
"name": "poolsize",
"value": "30m"
},
{
"name": "swimStyle",
"value": "mariposa"
},
{
"name": "modality",
"value": "swim"
},
{
"name": "gender-title",
"value": "schoolA"
}
]
},
"fileId": {
"$numberLong": "4"
}
}
我想更新嵌套陣列檔案,例如帶有性別標題的名稱。這對學校A有價值,我想像身體一樣變成成年人。我在發布請求中給出了 fileId 的引數號,在正文中我通過了這個
post request : localhost/sessionUpdate/4
and body:
{
"name": "gender-title",
"value": "adultos"
}
燒瓶
@app.route('/sessionUpdate/<string:a>', methods=['PUT'])
def sessionUpdate(a):
datas=request.json
r=str(datas['name'])
r2=str(datas['value'])
print(r,r2)
r3=collection.update_one({'fileId':a, 'metadata.addtionalInformation':r}, {'$set':{'metadata.addtionalInformation.$.value':r2}})
return str(r3),200
我得到了 200,但檔案沒有更新為新值。
uj5u.com熱心網友回復:
當您使用位置運算子$處理陣列時,請確保您的選擇查詢以陣列元素為目標。您可以在下面的查詢中看到它以metadata.addtionalInformation陣列為目標,條件是name: "gender-title"
db.collection.update({
"fileId": 4,
"metadata.addtionalInformation.name": "gender-title"
},
{
"$set": {
"metadata.addtionalInformation.$.value": "junior"
}
})
這是Mongo游樂場供您參考。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/463890.html
標籤:Python mongodb 烧瓶 mongodb查询
