与smart: true
students
和students.id = reports.student_id
中的reports.grade = 'A'
设置一样。
答案 0 :(得分:0)
可以在两个查询中完成 - addToSet
聚合和$in
更新:
db.reports.aggregate([
{$match: {grade: 'A'}},
{$group: {_id: '_', res: {$addToSet: '$student_id'}}}
])
然后将结果数组复制到$in
子句:
db.students.update(
{id: {$in: [1, 2, 3, 4]}},
{$set: {smart: true}},
{multi: true}
);