我有 mongodb 聚合查询,它在 shell 中完美运行。 我如何重写此查询以与吗啡一起使用?
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(...);
最佳答案
目前不支持此操作,但如果您要提交 issue我很乐意将其包含在即将发布的版本中。
关于java - 将 $addToset 与 java morphia 聚合一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32310413/