【发布时间】:2015-03-28 10:02:13
【问题描述】:
我有一个针对 Mongodb 的聚合操作的结果对象,结果是这样的:
[
{
"_id": {
"action": "hit",
"date": "2015-01-20T00:00:00.000Z"
},
"avg": 3,
"min": 3,
"max": 3,
"total": 3
},
{
"_id": {
"action": "hit",
"date": "2015-01-23T00:00:00.000Z"
},
"avg": 1,
"min": 1,
"max": 1,
"total": 12
}
]
我需要用零值添加缺失的日期,例如,如果我要求从 1 月 20 日开始的一周范围内,我希望有一个这样的结果对象:
[
{
"_id": {
"action": "hit",
"date": "2015-01-20T00:00:00.000Z"
},
"avg": 3,
"min": 3,
"max": 3,
"total": 3
},
{
"_id": {
"action": "hit",
"date": "2015-01-21T00:00:00.000Z"
},
"avg": 0,
"min": 0,
"max": 0,
"total": 0
},
{
"_id": {
"action": "hit",
"date": "2015-01-22T00:00:00.000Z"
},
"avg": 0,
"min": 0,
"max": 0,
"total": 0
},
{
"_id": {
"action": "hit",
"date": "2015-01-23T00:00:00.000Z"
},
"avg": 1,
"min": 1,
"max": 1,
"total": 12
},
{...}
]
日期范围的数组是这样的:
[
"2015-01-20T00:00:00.000Z",
"2015-01-21T00:00:00.000Z",
"2015-01-22T00:00:00.000Z",
"2015-01-23T00:00:00.000Z",
"2015-01-24T00:00:00.000Z",
"2015-01-25T00:00:00.000Z",
"2015-01-26T00:00:00.000Z",
]
对于这个数组中的每个日期,我必须在之前的结果中添加一个零值对象。
我用下划线和 map/reduce/clone 尝试了一些东西,但我无法得到正确的结果。
有什么帮助吗?
【问题讨论】:
-
您在哪里遇到问题?
-
我不明白如何用下划线来做,我有一个包含所有日期的数组,但我不能将它与 mongodb 结果相交。
-
你也可以发布那个数组吗?
-
已发,请看,谢谢
标签: javascript date underscore.js time-series