Есть ли простой способ обновить вложенный массив сущностей в MongoDB. Я использую драйвер MongoDB C# для вызова БД из приложения. Ниже приведен пример: скажем, у меня есть коллекция Student, где каждый документ имеет вложенный массив Course с некоторыми заполненными необходимыми полями, а Course сам по себе представляет собой отдельную коллекцию, например:
Код: Выделить всё
{
"_id": "234dssfcv456",
"Name": "Jean Douglas",
"Age": 32,
"Courses":
[
{
"_id": "1234",
"Name": "Computer Science",
"Level": "Basic"
},
{
"_id": "3456",
"Name": "Bio Science",
"Level": "Intermediate"
}
]
}
Я знаю, что могу обновить вложенный объект по индексу, как показано ниже, но я не знаю индекс, а знаю только идентификатор вложенного объекта Course< только /code>.
Код: Выделить всё
db.College.Student.update(
{"Student._id": "234dssfcv456"},
{$set: {
"Student.$.Courses.1.Level": "Basic"
}}
Прямо сейчас я читаю весь вложенный массив курсов -> делаю изменения в конце приложения -> затем передаю весь массив для обновления с именем файла «Курсы»< /code> который заменит существующий массив переданным.
Но я подумал, есть ли способ обновить один объект в массиве с помощью идентификатора < /код> доступен. Пожалуйста, предложите.
*** Справа в разделе Связанные вопросы показано обновление вложенного массива объектов с использованием индекса. элемента объекта, что для меня невозможно.
Подробнее здесь:
https://stackoverflow.com/questions/388 ... in-mongodb