0
我有以下的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數據MongoDB的API這個複雜的$總和操作?
group("myfield))
.sum("???").as("lt5w")
.sum("???").as("gt12w")
.count().as("count"),
sum()方法只需要簡單的字符串。 根據這張票(關閉) https://jira.spring.io/browse/DATAMONGO-784 匯聚應該支持像$ CMP和$ COND
更新複雜的操作:看來這個方法的總和(AggregationExpression表達式)版本遺忘here。 min(),max(),first()具有該方法版本。