0
我在Couchbase中創建了一個mapreduce視圖,以查找每個人的最新位置。Couchbase- Mapreduce:最新位置
的文件有如下(爲同是PersonID多個文件確實存在):
{
"_id": "PersonLocation::C38A2B74-166B-4EDE-A6E1-5B2DDE9350BB",
"type": "PersonLocation",
"PersonID": "AB62CD5B-ADDA-45E9-AFFE-76F4C0B97B52",
"CaptureDate": "2017-07-24T19:04:49.657",
"LocationID": "6E3E0CC4-FD8A-4602-8E68-C07E00DB6610"
},
{
"_id": "PersonLocation::930077A9-00DA-47C9-8A2C-8AB47ACFB83E",
"type": "PersonLocation",
"PersonID": "DD658CE5-BC54-4AB7-8DEC-544AD6662E09",
"CaptureDate": "2017-07-24T19:04:49.697",
"LocationID": "BC0E7923-3EDA-4CEF-864F-9B50AA218BBB"
}.....
地圖功能是:
function (doc, meta) {
if(doc.type =="PersonLocation"){
emit(doc.PersonID,{'LocationID':doc.LocationID, 'CaptureDate':doc.CaptureDate})
}
}
而減少功能是:
function (keys, values) {
var LatestDate =''
var LatestLocation = ''
for (var i = 0; i < values.length; i++)
{
var obj = values[i];
if(obj.CaptureDate > LatestDate)
{
LatestDate = obj.CaptureDate;
LatestLocation =obj.LocationID
}
}
return LatestLocation
}
在用鍵分組結果之後,我得到了一些正確的結果,但有些記錄與thei不一樣r'LatestLocation'顯示爲空(「」),清楚地表示該變量由於某種原因未被更新。我查了一下,並且非常確定LocationID和CaptureDate確實存在於每一個文檔中。 我試着研究過減少,但無法得到它的竅門,我怕這是什麼阻止我得到正確的結果。 請幫忙