Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将$addToset与java morphia聚合一起使用_Java_Mongodb_Morphia - Fatal编程技术网

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

将$addToset与java morphia聚合一起使用,java,mongodb,morphia,Java,Mongodb,Morphia,我有一个mongodb聚合查询,它在shell中工作得非常好。 如何重写此查询以用于morphia org.mongodb.morphia.aggregation.Group.addToSet(字符串字段)只接受一个字段名,但我需要将对象添加到集合中 查询: ......aggregate([ {$group: {"_id":"$subjectHash", "authors":{$addToSet:"$fromAddress.address"}, ---->&g

我有一个mongodb聚合查询,它在shell中工作得非常好。 如何重写此查询以用于morphia

org.mongodb.morphia.aggregation.Group.addToSet(字符串字段)
只接受一个字段名,但我需要将对象添加到集合中

查询:

......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(...);

这目前不受支持,但如果您要提交一个文件,我很乐意将其包含在即将发布的版本中。

谢谢您的回答,我可以根据源代码猜测:(

我不想直接使用spring数据或java驱动程序(对于这个项目),所以我更改了我的文档表示

添加了
messageDataSet
对象,该对象包含
sentDate
messageId
(以及一些其他嵌套对象)(这些值在设计糟糕的文档中重复)

聚合变为:
“messageDataSet”:{$addToSet:“$messageDataSet”},

Java代码是:
分组(“messageDataSet”,addToSet(“messageDataSet”),

这对moprhia有效,谢谢