MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Tableaux de somme MongoDB de plusieurs documents sur une base par élément

Vous pouvez utiliser includeArrayIndex si vous avez 3.2 ou une version plus récente de MongoDb.

Ensuite, vous devez modifier $unwind .

Votre code devrait ressembler à ceci :

.aggregate(
    [
      {
        "$unwind" :  { path: "$result", includeArrayIndex: "arrayIndex" }
      },
      {
        "$group": {
          "_id": "$arrayIndex",
          "results" : { "$sum" : "$result"}
          }
      },
      { 
        $sort: { "_id": 1}
      },
      {
        "$group":{
          "_id": null,
          "results":{"$push":"$results"}
          } 
      },
      {
        "$project": {"_id":0,"results":1}
      }
    ]
)