【发布时间】:2015-01-02 10:04:20
【问题描述】:
我在 mongodb 文档中找到了这个 mongo 命令:
db.sales.aggregate(
[
{
$group : {
_id : { month: { $month: "$date" }, day: { $dayOfMonth: "$date" }, year: { $year: "$date" } },
totalPrice: { $sum: { $multiply: [ "$price", "$quantity" ] } },
averageQuantity: { $avg: "$quantity" },
count: { $sum: 1 }
}
}
]
)
在使用spring data的Aggregation时,很容易通过调用Aggregation.group(Feild ...)将一个Document属性绑定到$group中的_id
但是对于上述情况,_id 属性是组合的,我未能在 Java 中构建它。大家有什么解决办法???我的意思是如何用Java表达上面的js??
非常感谢...
@更新..... $group 的 _id 使用 $month $dayOfMonth 之类的 mongo 函数...如何在 Spring 数据中执行此操作??
【问题讨论】:
-
$group 的 _id 使用了 $month $dayOfMonth 之类的 mongo 函数...我如何在 Spring 数据中做到这一点??
-
在这里对你有感觉。我最初确实认为这是重复的,但它肯定不是。 Spring-Mongo 似乎缺乏使
_id的这些部分用于分组的必要操作。我唯一能清楚地看到的是单独的$project操作,这不是最佳的,也没有当前的optimizer coalescence 发生帮助。适当地重新标记,以便希望像 Oliver 这样的人能够对此有所了解。
标签: java mongodb mongodb-query aggregation-framework spring-mongo