我正在尝试在我的数据库中查询集合,并按它们的日期字段对其进行汇总。为此,我编写了此查询,该查询将字段累积到数组中并按日期将它们分组-
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", Accumulator.accumulator("$push","p")),然后将其添加到.project-中projection("prs")。
这似乎不起作用。我究竟做错了什么?
慕工程0101907
相关分类