0

我想在 MongoDB 的标准聚合结构中直接发送原始 JSON 字符串以用于 Java Spring MongoDB Data 中的聚合。例如:

[
      { $match: { status: "A" } },
      { $group: { _id: "$cust_id", total: { $sum: "$amount" } } },
      { $sort: { total: -1 } }
]

有没有类似于BasicQuery聚合的东西?

我想使用原始字符串构建聚合,因为我想允许客户端指定聚合查询。

先感谢您

4

1 回答 1

0

尝试使用 Spring Data MongoDBMongoTemplateAggregation. 以下示例演示了MongoDB 聚合框架的使用模式。

在您的情况下,您可以像这样编写聚合代码:

Aggregation aggregation = newAggregation(
    match(Criteria.where("status").is("A")),
    group("status")
        .first("cust_id").as("_id")
        .sum("amount").as("total"),
    sort(Direction.DESC, "total")
);

AggregationResults<AggregationResult> results = mongoTemplate.aggregate(
    aggregation, "your_collection_name", AggregationResult.class);
List<AggregationResult> aggregationResult = results.getMappedResults();
于 2021-07-07T05:39:35.200 回答