Próbuję zaktualizować pojedyncze podelement zawarte w tablicy w dokumencie mongodb. Chcę odwołać się do pola za pomocą indeksu tablicy (elementy w tablicy nie mają żadnych pól, które gwarantuję, będą unikalnymi identyfikatorami). Wydaje się, że to powinno być łatwe do zrobienia, ale nie mogę wymyślić składni.MongoDB: Jak zaktualizować pojedyncze podelement w tablicy, do którego odwołuje się indeks w tablicy?
Oto, co chcę zrobić w pseudo-jsonie.
Przed:
{
_id : ...,
other_stuff ... ,
my_array : [
{ ... old content A ... },
{ ... old content B ... },
{ ... old content C ... }
]
}
Po:
{
_id : ...,
other_stuff ... ,
my_array : [
{ ... old content A ... },
{ ... NEW content B ... },
{ ... old content C ... }
]
}
Wygląda zapytania powinno być coś takiego:
//pseudocode
db.my_collection.update(
{_id: ObjectId(document_id), my_array.1 : 1 },
{my_array.$.content: NEW content B }
)
Ale to nie działa. Spędziłem zbyt długo przeszukując dokumentację mongodów i próbując różnych odmian tej składni (np. Używając $slice
itd.). Nie mogę znaleźć żadnego jasnego wyjaśnienia, jak wykonać tego rodzaju aktualizację w MongoDB.
Nie było .. .. naprawdę nieznane. – Moumit