【发布时间】:2016-08-08 22:09:01
【问题描述】:
是否有一种直接的方式来更新 MongoDB 中的嵌套实体数组。我正在使用MongoDB C# Driver 从应用程序进行数据库调用。下面是一个例子:假设我有一个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 对象 Id。
db.College.Student.update(
{"Student._id": "234dssfcv456"},
{$set: {
"Student.$.Courses.1.Level": "Basic"
}}
现在,我正在读取整个嵌套的课程数组 -> 在应用程序端进行修改 -> 然后使用文件名 "Courses" 传递整个数组以进行更新,这将用传递的数组替换现有数组。
但是在想,有没有一种方法可以使用可用的Id 更新数组中的一个实体。请提出建议。
*** 在 Related 问题部分的右侧,所有显示使用对象项的 index 更新嵌套的对象数组,这对我来说是不可能的.
【问题讨论】:
标签: c# mongodb mongodb-.net-driver