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

Groupby dans MongoTemplate renvoyant des champs vides

J'ai obtenu le résultat que je pense que vous vouliez en utilisant ce qui suit :

GroupBy groupBy = GroupBy.key("a", "b", "c")
                         .initialDocument("{ total: 0 }")
                         .reduceFunction("function(obj, result) { " +
                                         "  result.a = obj.a; " +
                                         "  result.b = obj.b; " +
                                         "  result.c = obj.c; " +
                                         "  result.total += obj.total; " +
                                         "}");

Notez que ce que vous devez faire est de dire à la fonction reduce ce qu'il faut mettre dans les champs a, b et c ainsi que dans le champ total.

Cela m'a donné une sortie brute de :

{ "a" : 10.0 , "b" : 20.0 , "c" : 30.0 , "total" : 300.0}

Étant donné que vous n'avez pas inclus la classe Grouped, je ne sais pas si cela correspond exactement à l'objet que vous vouliez, mais cela pourrait vous orienter dans la bonne direction.