我正在尝试在这样的文档中应用 map reduce 函数:
{
"_id": 2,
"timestamp_day": "1/20/2005 12:00:00 AM",
"variableID": "GUID",
"subscriptionID": "1",
"unit": "kWh",
"timezone": "UTC",
"sum": 0,
"numberOfRecords": 96,
"values": {
"1": 0.06232154558520836,
"2": 0.06232154558520836,
"3": 0.06232154558520836,
"4": 0.06232154558520836,
"5": 0.06232154558520836,
"6": 0.06232154558520836,
"7": 0.06232154558520836,
"8": 0.06232154558520836,
"9": 0.06232154558520836,
...
}
}
我每天都有保存信息的文档,每个值都代表一个读数。我的目标是在本文档中应用 mapReduce 函数,这样我就可以检索每天平均数、每个 id 每天平均数等指标。问题是我不知道该怎么做,因为 values 键包含一个 BSONElement。
到目前为止,我的地图功能如下:
var mapFunction = function() {
emit(this.subscriptionID, this.values);
}
根据我的理解,它将被发送到减少函数中存储的所有值,但同样,因为它是一个 BSON 元素,我该如何进行这些计算?一个 foreach 遍历每个?性能很重要。。
提前致谢。