java - 将 $addToset 与 java morphia 聚合一起使用

标签 java mongodb morphia

我有 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/

相关文章:

java - 未指定 @TableGenerator 时跳跃 GeneratedValue(strategy=GenerationType.TABLE) 背后的原因是什么?

java - 为什么这个方法没有给我android中的子网掩码

java - 递归读取文件夹中的所有文件Java

node.js - 在 Mongo 中实现对大量记录进行排序的最佳方法?

mongodb - 是否有 MongoDB 最大 bson 大小的解决方法?

java - Mongo 连接泄漏与吗啡

java - 从递归删除Java中获取对象

c++ - 如何在 mongodb::BSONObj Builder 中创建字符串通配符

java - 如何从 "referenced"文档ID获取完整的Json

java - 尝试 Autowiring 使用 Morphia 和 MongoDB 的类时,spring bean 配置出错