【问题标题】:How to express complex $sum grouping expression in Spring Data MongoDB如何在 Spring Data MongoDB 中表达复杂的 $sum 分组表达式
【发布时间】:2017-09-18 02:49:02
【问题描述】:

我有以下在 MongoDB 中运行良好的 MongoDB 聚合查询

   [
     { $match: { "myfield":"X" },
     { $group: {
           _id: { myfield: "$myfield"  },
           count: { $sum: 1 },
           lt5w: { $sum: { $cond:{ if: { $gte: [ "$myDate", new Date(ISODate().getTime() - 1000 * 60 * 60 * 24 * 7 * 5) ] }, then: 1, else: 0 } } },
           gt12w: { $sum: { $cond:{ if: { $gte: [ new Date(ISODate().getTime() - 1000 * 60 * 60 * 24 * 7 * 12), "$myDate"  ] }, then: 1, else: 0 } } }
         }
     }
])

如何使用 Spring Data MongoDB API 表达这个复杂的 $sum 运算?

group("myfield))
    .sum("???").as("lt5w")
    .sum("???").as("gt12w")
    .count().as("count"),

sum() 方法只需要简单的字符串。 根据这张票(已关闭) https://jira.spring.io/browse/DATAMONGO-784 聚合应该支持复杂的操作,比如 $cmp 和 $cond

更新:该方法的 sum(AggregationExpression expr) 版本似乎被遗忘了here。 min(), max(), first() 都有那个方法版本。

【问题讨论】:

    标签: spring-data spring-data-mongodb


    【解决方案1】:

    提交了工单,问题已解决!

    https://jira.spring.io/browse/DATAMONGO-1784

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多