当前位置: 首页 > 知识库问答 >
问题:

在java morphia聚合中使用$AddToset

冷俊健
2023-03-14

我有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}
        ])
  AggregationPipeline aggregationPipeline = myDatastore.createAggregation(Message.class)
                    .group("subjectHash",
                            grouping("authors", addToSet("fromAddress.address")),
 --------??????------>>     grouping("messageDataSet", ???????),
                            grouping("messageCount", new Accumulator("$sum", 1))
                    ).sort(...)).limit(...).skip(...);

共有1个答案

康言
2023-03-14

这是目前不支持的,但如果您将提交一个问题,我很乐意包括在一个即将发布的版本。

 类似资料:
  • 我需要汇总以下记录中的所有标记: https://gist.github.com/sbassi/5642925 (这个片段中有2个样本记录)并按大小对它们进行排序(首先是出现频率更高的标记)。但是我不想考虑具有特定“user_id”的数据(比方说,2,3,6和12)。 以下是我的尝试(只是聚合,没有过滤和排序): db。用户库。聚合({$unwind:“$annotations.data.tags

  • 基本上,我试图通过名字和姓氏找到重复的联系人 我错过了什么吗?任何帮助都将不胜感激。 下面是示例文档之一 我试图对Elasticsearch进行如下查询:

  • 我试图解决这个问题: 为汽车租赁公司绘制面向对象模型的UML类图,该模型跟踪汽车、租车人和租车人。创建一个UML类图来表示这些信息。显示正确的类和关系就足够了。不要向类添加属性或方法。 我在想租房者和汽车公司应该是协会,汽车公司和租房者应该是组合。然而,所提出的解决方案(此处简化)并不符合我的期望: 该解决方案将所有关系显示为聚合。有人能帮我理解为什么它们都是聚合的,而不是我认为的联想和组合吗?

  • 问题内容: 有一个对话列表,每个对话都有一个消息列表。每个消息都有一个不同的字段和一个字段。我们需要考虑的是,在对话的第一条消息中使用了动作,在几条消息中使用了动作之后,过了一会儿,依此类推(有一个聊天机器人意图列表)。 将对话的消息动作分组将类似于: 问题: 我需要使用ElasticSearch创建一个报告,该报告将返回每次会话的;接下来,我需要对类似的东西进行分组并添加一个计数;最终将导致as

  • 我有一套文件。每个文档有两个字段—“代码”和“状态”。我的mongodb集合包含以下文档: 我想按每个代码的状态查找计数。我想要的输出如下所示: 如何使用spring data mongodb实现这一点?我对mongodb很陌生。 更新我已成功编写mongodb查询。这是: 有人能帮助您在spring data mongodb中编写此查询吗?

  • 抱歉,如果已经问过了,但一直潜伏在SO周围,找不到任何适合我需要的东西。 基本上,我在使用ES的第一次快速尝试中试图实现的是在术语聚合中添加更多计数器。 快速尝试一下,我将以下请求发送给ES。 我现在得到的只是样本在文档中显示的内容。 但是,我真的不知道如何在桶中包含更多的内部聚合。会导致这样的文档的东西。 我应该如何构造聚合,以便按桶包含这些聚合?