获取每周更改(进度)

时间:2017-08-04 06:40:47

标签: mongodb

我在Games集合中有以下对象:

{
    _id      : 1,
    UserID   : 420,
    MaxValue : 235.23,
    Date     : ISODate("2017-08-02T00:23:44.553Z")
},
{
    _id      : 2,
    UserID   : 420,
    MaxValue : 452.23,
    Date     : ISODate("2017-08-06T00:23:44.553Z")
},
{
    _id      : 3,
    UserID   : 420,
    MaxValue : 281.02,
    Date     : ISODate("2017-08-15T00:23:44.553Z")
}

问题是:如何获得一周内MaxValue进度的百分比(==每周进度)?例如,如果我们采用_id: 3对象的Date字段和计算420的用户进度,它看起来像

  

上周的进展百分比(当前日期:2017年8月6日)=(452.23 - 235.23)/ 235.23 = ~92%

     

上周的平均进度(当前日期:2017年8月6日)=(452.23 + 235.23)/ 2 = 343.73

然后,在接下来的一周,我们采用前一周的计算平均值。它看起来像:

  

上周的进展(当前日期:2017年8月15日)=(281.02 - 452.23)/ 343.73 = - 49%

     

上周的平均进度(当前日期:2017年8月15日)=(281.02 + 343.73)/ 2 = 321.375

因此,如果我们手动(手动)计算进度,这就是它的样子。

因此,问题是一样的,但如何使用MongoDB aggregation / mapReduce 来做到这一点?并且,对于此特定度量(进度),我应该为此度量创建单独的表(每周进度),还是将它们存储在 Games 集合中?

0 个答案:

没有答案