来自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可以提供帮助。还有this和this。
以上是关于来自mongodb的多个集合的总和的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB $reduce(aggregation) 组与数组中嵌套文档的总和并按组计数
EJS:如何在 EJS 文件中呈现来自猫鼬的两个或多个填充集合