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

mongodbの配列オブジェクト値から合計する必要があります

    コレクション内のすべてのドキュメントを集約しているため、正しく機能していません。定数"_id": "tempId"でグループ化しています 、 $を追加して正しいキーを参照する必要があります として:

    db.getCollection('myCollection').aggregate([
        { "$group": {
            "_id": "$tempId",
            "totalValue": { 
                "$sum": { "$sum": "$messages.data.value" } 
            }
        } }
    ])
    

    これは本質的に、グループパイプラインの前に合計式を保持し、そのフィールドを $ sum グループ内の演算子。

    上記は、 $ sum以降に機能します。 MongoDB 3.2以降は、 の両方で利用できます。 $ project および $ group > ステージおよびで使用する場合$ project ステージ、 $ sum 式のリストの合計を返します。式"$messages.data.value" 数値のリストを返します[120、1200] その後、 $ sum 式:

    db.getCollection('myCollection').aggregate([
        { "$project": {
            "values": { "$sum": "$messages.data.value" },
            "tempId": 1,
        } },
        { "$group": {
            "_id": "$tempId",
            "totalValue": { "$sum": "$values" }
        } }
    ])
    


    1. マングースはmongodbに接続しません

    2. 配列の最大値と一致するサブドキュメントを取得します

    3. Ubuntuにmongodb-clientsの最新バージョンをインストールするにはどうすればよいですか?

    4. Websocketの切断された接続呼び出しが失敗しました