【发布时间】:2015-08-31 11:41:46
【问题描述】:
我有 mongodb 聚合查询,它在 shell 中完美运行。 如何重写此查询以与 morphia 一起使用?
org.mongodb.morphia.aggregation.Group.addToSet(String field) 只接受一个字段名称,但我需要将对象添加到集合中。
查询:
......aggregate([
{$group:
{"_id":"$subjectHash",
"authors":{$addToSet:"$fromAddress.address"},
---->> "messageDataSet":{$addToSet:{"sentDate":"$sentDate","messageId":"$_id"}},
"messageCount":{$sum:1}}},
{$sort:{....}},
{$limit:10},
{$skip:0}
])
Java 代码:
AggregationPipeline aggregationPipeline = myDatastore.createAggregation(Message.class)
.group("subjectHash",
grouping("authors", addToSet("fromAddress.address")),
--------??????------>> grouping("messageDataSet", ???????),
grouping("messageCount", new Accumulator("$sum", 1))
).sort(...)).limit(...).skip(...);
【问题讨论】: