在我的工作中,我使用了couchbase,並且出現了一些問題。從一些設備數據來到couchbase,並在我調用聚合視圖。該視圖必須通過2個鍵來聚合值:timestamp和deviceId。 一切都很好,在我試圖聚合更多的10k值之前。在這種情況下,我必須減少錯誤Couchbase,減少太大的錯誤
地圖功能:
function(doc, meta)
{
if (doc.type == "PeopleCountingIn"&& doc.undefined!=true)
{
emit(doc.id+"@"+doc.time, [doc.in, doc.out, doc.id, doc.time, meta.id]);
}
}
Reduce函數:
function(key, values, rereduce)
{
var result =
{
"id":0,
"time":0,
"in" : 0,
"out" : 0,
"docs":[]
};
if (rereduce)
{
result.id=values[0].id;
result.time = values[0].time;
for (i = 0; i<values.length; i++)
{
result.in = result.in + values[i].in;
result.out = result.out + values[i].out;
for (j = 0; j < values[i].docs.length; j++)
{
result.docs.push(values[i].docs[j]);
}
}
}
else
{
result.id = values[0][2];
result.time = values[0][3];
for(i = 0; i < values.length; i++)
{
result.docs.push(values[i][4]);
result.in = result.in + values[i][0];
result.out = result.out + values[i][1];
}
}
return result;
}
文檔樣本:
{
"id": "[email protected]",
"time": 1401431340,
"in": 0,
"out": 0,
"type": "PeopleCountingIn"
}
UPDATE
輸出文件:
{"rows":[
{"key":"[email protected]@1401144240","value":{"id":"[email protected]","time":1401144240,"in":0,"out":0,"docs":["[email protected]@[email protected]"]}},
{"key":"[email protected]@1401202080","value":{"id":"[email protected]","time":1401202080,"in":0,"out":0,"docs":["[email protected]@[email protected]"]}}
]
}
}
錯誤在 「文檔」 數組長度更然後100我認爲在該情況下工作rereduce功能的情況下發生。有沒有辦法解決這個錯誤exept使這個數組的數量更少?
錯誤消息說:「減少太大(66762字節)」,它小於1 Mb所以我認爲問題在某些其他 – Vitaliy
我已更新我的問題 – Vitaliy