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. nodejsアプリをGoogleCloudPlatformにデプロイする

    2. ファイルストレージとしてのMongoDB

    3. Node.jsとMongoDBタイムゾーンの問題UTCがドライバーによって正しく変換されていませんか?

    4. mongodbネイティブドライバーのfind()でフィールド選択を行う方法は?