来自mongodb的多个集合的总和

问题描述 投票:0回答:1

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

node.js mongodb mongoose
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.