MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como atualizar documentos do MongoDB com matrizes de subdocumentos


Existem algumas maneiras de fazer isso, vou responder ponto a ponto

Recupere as pontuações de todos os alunos ou de um aluno específico (recupere um elemento específico na matriz de pontuações)
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
});

Adicionar/atualizar/excluir a pontuação de um aluno específico, para uma disciplina específica (em caso de atualização ou exclusão, recupere um elemento específico na matriz scores[n].performance; para adicionar, anexe à mesma matriz. forte>
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
    });

espero que ajude