sql >> データベース >  >> NoSQL >> MongoDB

mongoDBのすべてのサブジェクトのマークを集約する方法

    以下の集計を使用できます:

    db.col.aggregate([
        {
            $unwind: "$marks"
        },
        {
            $project: {
                _id: 1,
                name: 1,
                marks: {
                    $objectToArray: "$marks"
                }
            }
        },
        {
            $project: {
                _id :1,
                name: 1,
                total_marks: {
                    $reduce: {
                        input: "$marks",
                        initialValue: 0,
                        in: { $add : ["$$value", "$$this.v"] }
                    }
                }
            }
        },
        {
            $group: {
                _id: "$_id",
                name: { $first: "$name" },
                total_marks: { $sum: "$total_marks" }
            }
        }
    ])
    

    マークはオブジェクトとして保存されるため、 $objectToArray> 主題の配列を取得します。次に、 $reduce を使用できます。 1人の学生のすべての科目を合計します。




    1. マングーススキーマを使用してCSVをインポートする

    2. MongoError:UNKNOWNに接続します

    3. 共有フォルダーでMongoを実行しているBoot2Docker(Windowsの場合)(このファイルシステムはサポートされていません)

    4. Dockerfile内のMongorestore