내 작업에는 couchbase를 사용하는데 몇 가지 문제가 있습니다. 일부 장치에서 데이터는 couchbase로 이동하고 집계 뷰를 호출 한 후에 나타납니다. 이보기는 값을 timestamp 및 deviceId의 두 키로 집계해야합니다. 10k 값 이상을 집계하기 전에 모든 것이 잘되었습니다. 이 경우에는 내가 감소 오류가Couchbase, 축소가 너무 큽니다.
지도 기능 :
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;
}
문서 샘플 :
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]);
}
}
기능을 줄
{
"id": "[email protected]",
"time": 1401431340,
"in": 0,
"out": 0,
"type": "PeopleCountingIn"
}
,536,913 63,210
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 기능을 작동하는 경우에 생각하는 경우에 발생합니다. 이 오류를 수정하여이 어레이의 수를 줄이는 방법이 있습니까?
오류 메시지에 "감속도가 너무 큼 (66762 바이트)"입니다 .1MB 미만입니다. 그 외. – Vitaliy
내 질문을 업데이트했습니다. – Vitaliy