【发布时间】:2020-03-02 16:07:18
【问题描述】:
我有一个复杂的组查询。
数据如下:
聚合如下:
- 按 doc_id 匹配
- 按名称分组
- project: name, name_count, amount, desc as { value: 由 desc 列表中金额的最大总和标识,count: (percent*100)^2 的总和,百分比:考虑该列表中金额的百分比}
- 与 L1 和 L2 相同。但是 L1 L2 是从另一个集合中引用的字段 {_id, name}。所以,我需要同时投影 _id、name 和我在上面第 3 点所做的事情。
因此,执行后可以说结果是:
...
},
"_id" : {
"name" : "abc"
},
"amount" : 45.0,
"count" : 4.0,
"desc" : {
"value" : "Laptop", // based on highest sum amount in group:'abc' i.e. 25.0 for laptop
"count" : 5061.72, // (56*100)^2 + (44*100)^2
"percent" : 25.0*100/45.0 = 56.0
},
...
测试数据链接:MonogoDb Playground
更新日期: 2019 年 7 月 11 日
增加了计算计数的例子
希望我很清楚。请帮忙。
【问题讨论】:
-
你能提供两个集合的数据(作为json)
-
不需要数量(或数量已经处理好了)
-
这只是一个示例。否则不需要。另外,我更新了计数和百分比要求。请看那个
-
不懂计数。 (既不是结果也不是计算!)
标签: mongodb mongodb-query aggregation-framework aggregate-functions