Есть ли прямой способ обновления вложенного массива объектов в MongoDB. Я использую MongoDB C# Driver
для вызова БД из приложения. Ниже приводится exmaple: скажем, у меня есть Student
коллекцию, где каждый документ имеет вложенную массив Course
с некоторыми необходимыми полями заселена и Course
само по себе является отдельной коллекции, как:Обновить свойство в вложенном массиве объектов в MongoDB
{
"_id": "234dssfcv456",
"Name": "Jean Douglas",
"Age": 32,
"Courses":
[
{
"_id": "1234",
"Name": "Computer Science",
"Level": "Basic"
},
{
"_id": "3456",
"Name": "Bio Science",
"Level": "Intermediate"
}
]
}
Я знаю, что я могу обновить вложенную сущность по индексу что-то вроде ниже, но я не знаю индекса и скорее знаю только вложенный Course
объект Id
.
db.College.Student.update(
{"Student._id": "234dssfcv456"},
{$set: {
"Student.$.Courses.1.Level": "Basic"
}}
Прямо сейчас, я читаю весь вложенный массив курсов -> делать изменения в конце приложения -> затем передать весь массив для обновления с filedname "Courses"
, который собирается заменить существующий массив с одним прошло.
Но думал, есть ли способ, который я могу обновить один объект в массиве с доступным Id
. Пожалуйста, предложите.
*** На правой стороне в связанную вопроса раздела все шоу обновляют вложенный массив объектов с использованием индекса элемента объекта, который не является возможностью для меня.
Реальный хороший ответ. Оцените свои усилия. Спасибо друг :) – Rahul