sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man uppdaterar MongoDB-dokument med uppsättningar av underdokument

Det finns några sätt att göra detta på. Jag kommer att svara punkt för punkt

Hämta poängen för alla elever, eller för en specifik elev (hämta ett specifikt element i poängmatrisen)

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
});

Lägg till/uppdatera/ta bort en specifik elevs poäng, för ett specifikt ämne (vid uppdatering eller radering, hämta ett specifikt element i poängen[n].prestationsmatrisen; för att lägga till, lägg till i samma matris.

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
    });

Jag hoppas att det hjälper




  1. Har ett problem när du delar upp och räknar data i en CSV i MONGODB (har nollvärden i kolumner som kolumnnamn:)

  2. 2 sätt att begränsa dokumenten som returneras i MongoDB

  3. Node js Mongodb Query NumberLong

  4. Redis Sentinel