Er zijn een paar manieren om dit te doen, ik zal punt voor punt antwoorden
Haal de scores op voor alle studenten, of voor een specifieke student (haal een specifiek element op in de scoresreeks)
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
});
Toevoegen/bijwerken/verwijderen van de score van een specifieke student, voor een specifiek onderwerp (in geval van update of verwijderen, zoek een specifiek element op in de scores[n].performance array; voor toevoegen, voeg toe aan dezelfde array. sterk>
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
});
Ik hoop dat dat helpt