Java 如何在Morphia查询中包含具有累加器的多个分组?

Java 如何在Morphia查询中包含具有累加器的多个分组?,java,mongodb,mongodb-query,aggregation-framework,morphia,Java,Mongodb,Mongodb Query,Aggregation Framework,Morphia,我试图在数据库中查询一个集合,并按它们的日期字段进行聚合。为此,我编写了这个查询,它将字段累加到一个数组中,并按日期对字段进行分组- db.myclass.aggregate([ { $group : { _id : {$dayOfYear : "$df"}, ts: { $push: {t:"$c"} } } } ]) 将此查询转换为Morphia时效果非常好- datastore.createAggregation(MyClass.class) .match

我试图在数据库中查询一个集合,并按它们的日期字段进行聚合。为此,我编写了这个查询,它将字段累加到一个数组中,并按日期对字段进行分组-

db.myclass.aggregate([ { $group : { _id : {$dayOfYear : "$df"}, ts: { $push: {t:"$c"} } } } ])
将此查询转换为Morphia时效果非常好-

datastore.createAggregation(MyClass.class)
                .match(query)
                .group(  Group.id(Group.grouping("$dayOfYear", "df"))
                      ,Group.grouping("ts", Accumulator.accumulator("$push","c"))
                      ,Group.grouping("date", Group.first("df"))
                      )
                .project(   projection("ts")
                        ,projection("date")
                        ,projection("day", projection("$dayOfMonth","date"))
                        ,expression("month", projection("$month","date"))
                        ,expression("year", projection("$year","date"))
                      )
                .sort(Sort.ascending("_id"))
                .aggregate(MyDate.class, AggregationOptions.builder().batchSize(100).outputMode(OutputMode.CURSOR).build());
现在我想在Morphia中重新编写这个MongoDB聚合,它有两组需要累加的数组-

db.findings.aggregate([ { $group : { _id : {$dayOfYear : "$df"}, ts: { $push: {t:"$c"} }, prs: { $push: {pr:"$p"} } } } ])
为此,我使用了与上面相同的Morphia查询,但包含了第二个分组
Group.grouping(“prs”,acculator.acculator(“push”,“p”))
,然后将其添加到
.project
-
投影(“prs”)


这似乎不起作用。我做错了什么?

问题不在于查询;这是我试图检索的数组的域对象字段类型

我创建了一个
字符串[]
,而我本应该创建一个
整数[]
。修正了这个问题

我真希望Morphia抛出合适的错误,这样我就可以在这么多年前调试了