0

我有一堆文件:

{"timestamp" : 1304535236, "value" : 2}
{"timestamp" : 1304532236, "value" : 5}
{"timestamp" : 1304535647, "value" : 1}

timestampUnix时间戳在哪里。我想总结一下每天的总数value。注意:可能有许多文档的时间戳落在同一天的不同时间。

如果我做一个普通的 mongo 组查询是每个时间戳的总和,因为它们都是唯一的,这是没有帮助的。

4

1 回答 1

2

您必须将timestamp值转换为Date对象,以便您可以按天分组。

使用 Rachel 的回答作为起点(在 shell 中):

db.test.group({
  keyf: function(doc) {
    var date = new Date(doc.timestamp*1000);
    var dateKey = (date.getMonth()+1) + "/" + 
                  date.getDate() + "/" + 
                  date.getFullYear();
    return {day: dateKey};
  },
  initial: {value: 0},
  reduce: function(curr, result) { result.value += curr.value; }
});

返回:

[
  {
    "day": "5/4/2011",
    "value": 8
  }
]
于 2013-01-29T19:16:57.853 回答