J'essaie d'effectuer une agrégation mongodb en utilisant Java et incapable de comprendre comment faire la somme de 2 champs individuellement. Ci-dessous ma structure de document:Java MongoDB agrégation - somme de plusieurs champs
{
"_id" : ObjectId("59b6b96423b65d0a04de128d"),
"itemCount": 25,
"defectiveItemCount": 5,
"time": ISODate("x")
},
{
"_id" : ObjectId("59b6b96423b65d0a04de128d"),
"itemCount": 20,
"defectiveItemCount": 7,
"time": ISODate("x")
}
J'essaie de résumer en utilisant:
Aggregation pipeline = newAggregation(
match(Criteria.where("time").gt(time)),
group().sum("itemCount").as("total"),
group().sum("defectiveItemCount").as("defective"),
project("total").and("defective").previousOperation()
);
J'ai aussi essayé:
Aggregation pipeline = newAggregation(
match(Criteria.where("time").gt(time)),
group().sum("itemCount").as("total").sum("defectiveItemCount").as("defective"),
project("total").and("defective").previousOperation()
);
Quand je lance cette agrégation, le résultat de défectueux est toujours NUL.
Je veux le résultat que:
{
"itemCount": 45,
"defectiveItemCount": 12
}
Est-ce possible ou dois-je effectuer au-dessus de 2 agrégations distincts?