我正在嘗試更新“array1.array2._id”的資料: ObjectId("627a6fab60dc3c523b396af1") 并將名稱設定為 John 但它正在將所有 array2 的第一個元素的名稱更新為 John。
db.getCollection('tests')
.updateOne({ "array1.array2._id": ObjectId("627a6fab60dc3c523b396af1") },{ $set: { "array1.$[].array2.$.name" : "John" } })
{
"_id" : ObjectId("627a6fab60dc3c523b396aec"),
"array1" : [
{
"array2" : [
{
"_id" : ObjectId("627a6fab60dc3c523b396af1"),
"name" : "test"
},
{
"_id" : ObjectId("627a6fab60dc3c523b396af2"),
"name" : "ABC"
}
],
"_id" : ObjectId("627a6fab60dc3c523b396aed")
},
{
"array2" : [
{
"_id" : ObjectId("627a6fab60dc3c523b396af3"),
"name" : "XYZ"
},
{
"_id" : ObjectId("627a6fab60dc3c523b396af4"),
"name" : "Testing"
}
],
"_id" : ObjectId("627a6fab60dc3c523b396aee")
}
]
}
uj5u.com熱心網友回復:
基于@R2D2的這個出色回答,您可以執行以下操作:
db.collection.update({
"array1.array2._id": ObjectId("627a6fab60dc3c523b396af1")
},
{
$set: {
"array1.$[].array2.$[y].name": "John"
}
},
{
arrayFilters: [
{
"y._id": ObjectId("627a6fab60dc3c523b396af1")
}
]
})
正如您在這個游樂場示例中看到的那樣
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/476002.html
標籤:数组 mongodb 猫鼬 mongodb查询 嵌套循环
上一篇:如何在貓鼬中填充物件陣列?
