Mongodb 如何在mongo中分层存储MapReduce结果

Mongodb 如何在mongo中分层存储MapReduce结果,mongodb,mapreduce,Mongodb,Mapreduce,我想对一些度量执行map-reduce操作,并希望存储其聚合结果和时间序列 存储聚合结果似乎非常简单,但如何以时间序列的方式存储结果,即无论何时map reduce函数运行,该间隔的值也应记录在结果集合中。(即时间序列数据) 假设我的map reduce聚合得到以下结果:- > db.result.find() { "_id" : { "eventId" : 1}, "value" : { "sum" : 21 } } { "_id" : { "eventId" : 2}, "value"

我想对一些度量执行map-reduce操作,并希望存储其聚合结果和时间序列

存储聚合结果似乎非常简单,但如何以时间序列的方式存储结果,即无论何时map reduce函数运行,该间隔的值也应记录在结果集合中。(即时间序列数据)

假设我的map reduce聚合得到以下结果:-

> db.result.find()
{ "_id" : { "eventId" : 1}, "value" : { "sum" : 21 } }
{ "_id" : { "eventId" : 2}, "value" : { "sum" : 31 } }
我能够通过map_reduce聚合框架轻松实现上述目标

我希望结果也存储在timeseries中,如下所示:-

> db.result.find()
    { "_id" : { "eventId" : 1}, "value" : { "sum" : 21, "ts": {1: 15, 2: 4, 3: 2  } } }
    { "_id" : { "eventId" : 2}, "value" : { "sum" : 31, "ts": {1: 12, 2: 12, 3: 7 } } }
现在,无论何时运行map reduce函数,它都应该更新结果集合

我尝试了很多方法,但都没有成功。你知道我怎样才能做到吗


此外,如果在相同的map-reduce函数调用下可以实现这一点,那就太好了。

对于此类时间序列数据的一般建议是使用

如果这是不可能的,首先考虑使用Map Reduce代替Map Reduce。如果您的用例允许,它会更快更容易


使用聚合管道和map reduce,您可以使用结果创建所需的文档。可能会有帮助

如果不尝试让它工作,很难理解您想要什么。一般建议是不可能的,因为我必须在数据存储到mongo后计算数据。我会尝试并使用聚合管道,但我希望结果存储在某个地方,以便稍后查询。这就是为什么我使用MapReduce,它会在每个时间间隔运行,计算数据并存储在其他集合中,我也想存储它的时间序列。