Има няколко начина да направите това, на които ще отговоря точка по точка
Извличане на резултатите за всички ученици или за конкретен ученик (извличане на конкретен елемент в масива с резултати)
Class.findOne({ name: 'Grade 5 - Section A'})
.populate('scores.studentId')
.exec(function(err, class) {
if (err) throw err;
//now class.scores.studentId becomes ObjectStudent
//hence you have all scores for all students
});
Добавяне/актуализиране/изтриване на конкретен резултат на ученик за конкретен предмет (в случай на актуализиране или изтриване, извличане на конкретен елемент в масива scores[n].performance; за добавяне, добавете към същия масив.силен>
Class.findOneAndUpdate({name: 'Grade 5 - Section A'
,'scores.studentId': ObjectId('5776bd36ffc8227405d364d2')
, 'scores.performance.subjectId' : ObjectId('577694ecbf6f3a781759c54a')}
, {$set: {scores.performance. score: 50}}
, function(err, data) {
if (err) throw err
});
Надявам се, че това помага