Я намагаюся оновити один піделемент, що міститься в масиві в документі mongodb. Я хочу посилатися на поле, використовуючи його індекс масиву (елементи всередині масиву не мають полів, які, я можу гарантувати, будуть унікальними ідентифікаторами). Здається, це має бути легко зробити, але я не можу зрозуміти синтаксис.
Ось, що я хочу зробити в pseudo-json.
До:
{
_id : ...,
other_stuff ... ,
my_array : [
{ ... old content A ... },
{ ... old content B ... },
{ ... old content C ... }
]
}
Після:
{
_id : ...,
other_stuff ... ,
my_array : [
{ ... old content A ... },
{ ... NEW content B ... },
{ ... old content C ... }
]
}
Здається, запит має бути приблизно таким:
//pseudocode
db.my_collection.update(
{_id: ObjectId(document_id), my_array.1 : 1 },
{my_array.$.content: NEW content B }
)
Але це не працює. Я витратив занадто багато часу на пошук документів mongodb та випробування різних варіацій цього синтаксису (наприклад, використання $slice
тощо). Я не можу знайти чіткого пояснення того, як виконати подібне оновлення в MongoDB.