来自mongodb的多个集合的总和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了来自mongodb的多个集合的总和相关的知识,希望对你有一定的参考价值。

我有两个集合,即col1和col2。 col1有以下字段: _ID 用户 支付 Col2读起来像 _ID 用户 量 我希望输出是支付(从col1)和金额(从col2)的总和

答案

为什么不只是在两个集合中找到数据然后将两个对象传递给一个增加总和的函数?这样的事情:

var sum = 0; //do this for both collections db.collection.find({}).forEach(function(obj){ sum+=obj.payout; });

如果您想要做的是获得每个不同用户的总和,您可以执行以下操作:

var sumForUser = {}; //do this for both collections db.collection.find({}).forEach(function(obj){ if ( sumForUser[obj.user] ) { sumForUser[obj.user] += obj.payout; else sumForUser[obj.user] = obj.payout; });

然后你会得到一个“sumForUser”对象,其中包含你想要的每个用户的总和。这将是用户总和的“地图”。

这也可以通过许多不同的方式完成,包括使用reduce函数和其他mongoDB函数,如MapReduce等。也许this可以提供帮助。还有thisthis

以上是关于来自mongodb的多个集合的总和的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB $reduce(aggregation) 组与数组中嵌套文档的总和并按组计数

如何将代码片段存储在 mongodb 中?

EJS:如何在 EJS 文件中呈现来自猫鼬的两个或多个填充集合

如何汇总 MongoDB 中的总和以获得总计数?

集合未保存在 mongodb 中(来自 mongoose 填充文档的故事集合)

$lookup 运算符未能返回来自多个集合的组合数据