Setelah beberapa penelitian lebih lanjut, sepertinya satu-satunya cara untuk memodifikasi array di dalam array adalah dengan beberapa logika luar untuk menemukan indeks elemen yang ingin saya ubah. Melakukan hal ini akan membutuhkan setiap perubahan untuk memiliki kueri pencarian untuk menemukan indeks, dan kemudian kueri pembaruan untuk memodifikasi larik. Sepertinya ini bukan cara terbaik.
Tautan ke kasus JIRA 2010 yang meminta beberapa elemen posisi...
Karena saya akan selalu mengetahui ID fitur tersebut, saya memilih untuk merevisi struktur dokumen saya.
{
"_id" : "v5y8nggzpja5Pa7YS",
"name" : "Example",
"display_name" : "EX1",
"groups" : [
{
"_id" : "s86CbNBdqJnQ5NWaB",
"name" : "Group1",
"display_name" : "G1",
"features" : {
"1" : {
type : "blog",
name : "[blog name]"
owner_id : "ga5YgvP5yza7pj8nS"
},
}
},
]
},
Dengan struktur baru, perubahan dapat dilakukan dengan cara berikut:
db.orgs.update({_id: "v5y8nggzpja5Pa7YS", "groups._id": "s86CbNBdqJnQ5NWaB"}, {$set: {"groups.$.features.1.name":"Blog Test 1"}});