【发布时间】: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