我有一個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