我有一个python脚本女巫我用来将大集合聚集成小块,并按时间戳分组。MongoDB MapReduce,日期和%运算符
map = Code("function(number) {"
"emit({"
"ts : new Date(new Date((this.ts - (this.ts % (60 * number))) * 1000).setSeconds(0))"
"}, 1);"
"}")
reduce = Code("function(key, vals) {"
"var sum = 0;"
"for (var i in vals) {"
"sum += vals[i]"
"}"
"return sum;"
"}")
正如你所看到的,这是一个非常简单的MapReduce和时间戳(TS)应分钟的ANNY给定数量进行分组。我已经测试了这里的Javascript http://jsfiddle.net/QgMzK/1/,它似乎工作正常。但是,当我在Python中运行它时,所有时间戳都变成ISODate(“1970-01-01T00:00:00Z”)。
任何想法?
地图功能的编号参数使我能够按最近的5,10或X分钟对收藏进行分组。如果我将ts-prop更改为ex,ts:number: – 2012-08-15 11:16:51
@Jarsäter,这个参数很好奇,因为我可以看到它返回'None'作为map-reduce结果中的唯一键,并且它完全一致与我的答案。 – soulcheck 2012-08-15 11:45:07