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

mongodbの集約で複数のグループを組み合わせる

    以下のように集計できます:

    • $group storeによる フィールドで、subtotalを計算します 。

    • $project フィールドdoc subtotalを保持する 次のグループの間に、タクトでグループ化します。

    • $group nullによる 正味合計を累積します。

    コード:

    db.invoices.aggregate([{
                $group: {
                    "_id": "$store",
                    "subtotal": {
                        $sum: "$total"
                    }
                }
            }, {
                $project: {
                    "doc": {
                        "_id": "$_id",
                        "total": "$subtotal"
                    }
                }
            }, {
                $group: {
                    "_id": null,
                    "total": {
                        $sum: "$doc.total"
                    },
                    "result": {
                        $push: "$doc"
                    }
                }
            }, {
                $project: {
                    "result": 1,
                    "_id": 0,
                    "total": 1
                }
            }
        ])
    

    出力:

    {
        "total": 1000,
        "result": [{
                "_id": "ABC",
                "total": 700
            }, {
                "_id": "XYZ",
                "total": 300
            }
        ]
    }
    


    1. pymongo:MongoClientまたはConnection

    2. ExpressおよびPostmanと同時に複数のJSONオブジェクトを投稿する

    3. MongoDBの内部配列にデータを挿入します

    4. 2つの日付の間のオブジェクトを検索MongoDB