我正在學習 MongoDB (ver 5) [with Django (pymongo)] 并面臨更新物件的多維數值陣列的問題。
我想更新嵌套在多維陣列中的物件值。
樣本采集資料:
[
{
"_id": {
"$oid": "6269a7a2d9a928481c1ee94c"
},
"data": [
[
[
{
"id": "",
"word": "arep 1"
},
{
"id": "",
"word": "arep 2"
},
{
"id": "",
"word": "arep 3"
}
],
[
{
"id": "",
"word": "arep 4"
},
{
"id": "",
"word": "arep 5"
},
{
"id": "",
"word": "arep 6"
}
],
[],
[]
],
]
}
]
我想將“ id ”欄位值更新為“ some new id ”,其中相關的“ word ”是“ arep 2 ”。到目前為止,我已經創建了一個更新查詢,例如:
db.collection.update({
"_id": {
"$oid": "6269a7a2d9a928481c1ee94c"
},
"data.$.$.$": {
"word": "arep 2"
}
},
{
"$set": {
"data.$[].$[].$[]": {
"id": "some new id"
}
}
},
{
"upsert": true
})
但是價值沒有被設定。我究竟做錯了什么?
蒙哥游樂場
謝謝你讀到這里。提前感謝您就解決方案集思廣益。
uj5u.com熱心網友回復:
詢問
- arrayfilters 以匹配
word= "arep 2" - 對于所有成員(2 個嵌套級別)
($[] means for all members),將單詞(滿足 arrayFilter)($[w].word)設定為"hello"
玩蒙哥
update(
{"_id": {"$eq": 1}},
{"$set": {"data.$[].$[].$[w].word": "hello"}},
{"arrayFilters": [{"w.word": {"$eq": "arep 2"}}]})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/466384.html
標籤:数组 mongodb 目的 多维数组 mongodb-更新
上一篇:Terraform資源已更改
下一篇:如何克隆具有不同特定值的物件
