1、上面的问题可以这样解决:
[
'$unwind' => 'order_data'
],
[
'$match' => [
'order_data.product_price' => [
'$gt' => 5
]
]
],
[
'$group' => [
'_id' => 'order_id',
'total' => [
'$sum' => '$order_data.product_price'
]
]
]
2、问这个问题的时候其实还没怎么了解过aggregate,捣鼓了一段时间后觉得aggregate非常灵活
3、aggregate自带大量的表达式,可以写出很复杂的运算方法,这种运算统计如果用php后台脚本来写个人感觉非常丑陋和难以维护;
4、在即时查询上aggregate的处理速度比想象中快,不过这可能是项目的数据不太多的原因;现在的项目就是把订单保存成跟fecshop比较类似的结构,在各种查询上用aggregate来处理。
5、用aggregate实在开阔了眼界,个人感觉这比excel的统计功能还厉害