sql >> Database >  >> NoSQL >> MongoDB

MongoDB-documenten bijwerken met arrays van subdocumenten

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




  1. MongoDB laadt documenten vooraf in RAM voor betere prestaties

  2. Basisquerybewerkingen uitvoeren in MongoDB

  3. Hoe werkt cursor.observe en hoe voorkom je dat meerdere instanties actief zijn?

  4. Aangepaste MongoDb docker-afbeelding