问题描述
有以下数据结构:
{id:1, name: "apple", alias:"苹果", price: 5, type: "add"}
{id:1, name: "apple", alias:"苹果", price: 3, type: "minus"}
{id:1, name: "pear", alias:"梨子", price: 6, type: "add"}
{id:1, name: "pear", alias:"梨子", price: 3, type: "add"}
{id:1, name: "pear", alias:"梨子", price: 1, type: "minus"}
第一条数据是赚了5块钱(type为add),第二条是花了3块钱(type为minus), 等等。
我想要的结果是:
- 根据name分类
- 在1的分类基础下计算最终price的合值
合值根据type的类型确定,type为add时,price相加;type为munus时,price相减
比如上面的最终期望结果是:
[
{name: "apple", price: 2}, //5-3
{name: "pear", price: 8} //6+3-1
]
如何用聚合统计来统计price的最终合并值呢,请教大神指点一下思路,谢谢
有点疑问,为什么不直接存成
{price: 5}
,{price: -3}
这样的形式?这样计算起来就简单多了,人看着也更明白一些。以你现在的形式要做计算则需要写更复杂的pipeline:
如果按我说的存储方式:
是不是简单很多?