sql >> Databáze >  >> NoSQL >> MongoDB

Jak aktualizovat dokumenty MongoDB pomocí polí dílčích dokumentů

Existuje několik způsobů, jak to udělat, odpovím bod po bodu

Načíst skóre pro všechny studenty nebo pro konkrétního studenta (načíst konkrétní prvek v poli skóre)

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

Přidat/aktualizovat/odstranit skóre konkrétního studenta pro konkrétní předmět (v případě aktualizace nebo smazání načtěte konkrétní prvek v poli score[n].performance; pro přidání přidejte do stejného pole. silný>

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

Doufám, že to pomůže




  1. Hadoop – Výukové programy Apache Hadoop pro začátečníky

  2. ValueError:<Příliš mnoho hodnot k rozbalení>

  3. Jak mohu změnit pole _id v kolekci MongoDB na User_id?

  4. Získat názvy všech polí v kolekci mongodb?