【发布时间】:2014-05-30 14:30:46
【问题描述】:
我们的输入是这样的
{ _id: 1, deviceuuid: "d1", sessiontime: 10, timestamp = 123456789123 }
{ _id: 2, deviceuuid: "d1", sessiontime: 13, timestamp = 123456789129 }
{ _id: 3, deviceuuid: "d1", sessiontime: 15, timestamp = 123456789133 }
{ _id: 4, deviceuuid: "d1", sessiontime: 16, timestamp = 123456789153 }
{ _id: 5, deviceuuid: "d1", sessiontime: 17, timestamp = 123456789163 }
{ _id: 6, deviceuuid: "d2", sessiontime: 10, timestamp = 123456789123 }
{ _id: 7, deviceuuid: "d2", sessiontime: 13, timestamp = 123456789129 }
{ _id: 8, deviceuuid: "d2", sessiontime: 15, timestamp = 123456789133 }
{ _id: 9, deviceuuid: "d2", sessiontime: 16, timestamp = 123456789153 }
{ _id: 10, deviceuuid: "d2", sessiontime: 17, timestamp = 123456789163 }
我们收到的是累积的“会话时间”事实。所以我们的要求是计算delta并放入不同的集合
在地图阶段:
我发出密钥:< deviceuuid> 和值:{ sessiontime:<value>, timestamp=<value>}
在减少阶段: 我正在按时间戳对值进行排序并计算增量
e.g. for device uuid “d1”
10 -0 => 10
13 -10 => 3
15 -13 => 2
16 -15 => 1
17 -16 => 1
我们需要将上述数据插入到不同的集合中,但 db 对象在 reduce 阶段不可用 即
db.result.save(..) Giving error in reduce phase
请推荐!!
【问题讨论】:
标签: mongodb