Обновить свойство во вложенном массиве объектов в MongoDBC#

Место общения программистов C#
Ответить
Anonymous
 Обновить свойство во вложенном массиве объектов в MongoDB

Сообщение Anonymous »

Есть ли простой способ обновить вложенный массив сущностей в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»