MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да актуализирате MongoDB документи с масиви от поддокументи

Има няколко начина да направите това, на които ще отговоря точка по точка

Извличане на резултатите за всички ученици или за конкретен ученик (извличане на конкретен елемент в масива с резултати)

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

Добавяне/актуализиране/изтриване на конкретен резултат на ученик за конкретен предмет (в случай на актуализиране или изтриване, извличане на конкретен елемент в масива scores[n].performance; за добавяне, добавете към същия масив.

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

Надявам се, че това помага




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. какъв е batchSize по подразбиране в pymongo?

  2. Отношения на MongoDB:вграждане или справка?

  3. MongoDB:актуализиране на масив в масив

  4. MongoDB сортира документи по вложени данни

  5. Проект за филтриране на свойство във втория вложен масив