Mongodb 与Mongo合并到大型集合中

Mongodb 与Mongo合并到大型集合中,mongodb,nosql,Mongodb,Nosql,我正试图找出如何与Mongo合作,但收效甚微 我正在使用maReduce函数总结我正在进行的项目的用电量。我把每个帐户都汇总了一下 我有一个集合中每个帐户的每小时用电量日志,我使用map reduce函数生成另一个集合,该集合如下所示: { _id: (account_id) value: {watts: (sum of all watts in existence in other collection)} } 我现在还使用了一个mapReduce,它对这个进行增量添加,这样我就可以每小时添

我正试图找出如何与Mongo合作,但收效甚微

我正在使用maReduce函数总结我正在进行的项目的用电量。我把每个帐户都汇总了一下

我有一个集合中每个帐户的每小时用电量日志,我使用map reduce函数生成另一个集合,该集合如下所示:

{
_id: (account_id)
value: {watts: (sum of all watts in existence in other collection)}
}
我现在还使用了一个mapReduce,它对这个进行增量添加,这样我就可以每小时添加一次,而不是每次都重新计算

我想知道的是如何计算一些东西,以便计算当前年份的瓦特使用量,并将其插入每个文档中的values对象中。当然,我愿意为每个帐户都这样做

我知道如何通过mapReduce收集数据,以生成如下文档:

{
_id: (account_id)
value: {watts_this_year: some_num}
}
{
_id: (account_id)
value: {watts_this_year: some_num, watts: (sum of all watts in existence in other collection)}
}
我只是不知道如何将它合并到我制作的收藏品中

我想将它们合并为:

{
_id: (account_id)
value: {watts_this_year: some_num}
}
{
_id: (account_id)
value: {watts_this_year: some_num, watts: (sum of all watts in existence in other collection)}
}
我清楚地表达了我自己吗?请让我知道,如果还有什么我可以做的,使我的问题更清楚


谢谢

MapReduce不适用于增量更新。这是一个一次性的工具,可以搅动大量数据并返回结果。实际上,我建议您看看使用聚合框架是否足够快,可以实时完成这项工作。它比M/R快得多

例如,上面的示例将通过以下对聚合的调用来表示:

db.collName.aggregate( { $group: { '_id': '$_id', watts: { $sum: '$watts' } } } );
A/F比M/R更快,因为它是用C实现的,并且可以运行并发作业。目前不利的一面是,它不会将结果输出到新集合,但目前正在进行这项工作: