【问题标题】:Morphia - AggregationPipeline Calculated fieldsMorphia - AggregationPipeline 计算字段
【发布时间】:2016-02-07 19:54:36
【问题描述】:

我想知道如何在 sum 静态方法中使用乘法,在 AggregationPipeline 中使用 Java 中的 Morphia 按同一字段分组。

类似的东西,在 Morphia:

   new BasicDBObject("totalSales",
                new BasicDBObject("$sum",
                        new BasicDBObject("$multiply",
                                new String[]{"$value", "$amount"})));

在这个问题上非常相似:Calculated group-by fields in MongoDB

提前致谢。

【问题讨论】:

    标签: java mongodb aggregation-framework morphia


    【解决方案1】:

    在您的 aggregation framework 中,首先创建一个 projection 管道来进行算术计算,然后使用您的 group 中的新字段strong> 管道,类似这样:

    Iterator<Foo> aggregate = datastore.createAggregation(Foo.class)
           .project(projection("_id").suppress(),
               projection("field1", "_id"),
               projection("field2"), projection("field3"),
               projection("sales", multiply(projection("value"), projection("amount"))))
          .group("field3", grouping("totalSales", sum("sales")));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-17
      • 2012-10-11
      • 1970-01-01
      • 2016-09-28
      • 2011-03-28
      • 2015-02-07
      • 2020-07-09
      相关资源
      最近更新 更多