我有一个类似的架构:
classID: String,
students: [
{
id: String,
name: String,
marks: Number,
status: String
}
]
现在,我要求更新状态为"通过"的所有学生记录。标记为35。
请告诉我这是最好的方法。
我尝试过:
$set: {"students.$.marks" : 0}
但它刚刚更新了第一张匹配的记录。
然后我发现我可以通过索引来做到这一点:
$set: {"students.0.marks" : 0},
$set: {"students.1.marks" : 0}
我能够更新前两条记录,如何更新数组中的所有记录或满足条件的记录?
答案 0 :(得分:0)
首先根据您的条件获取所有记录然后循环记录,并在循环中更新记录。
students.find({makers > 35 }, function(err,data))
{ for loop { 更新记录 } }