我想知道如何在Java中使用MulyIa在同一个字段中使用一个聚合流水线中的和静态方法。
像这样,在摩菲娅:

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

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

最佳答案

aggregation framework中,首先创建一个projection管道来进行算术计算,然后使用group管道中的新字段,如下所示:

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")));

10-07 13:57