1
단순한지도를 줄여야한다고 생각하지만, 서버 측 JavaScript를 작성하는 방법에 대한 참조를 찾을 수 없기 때문에 문제가 발생했습니다.MongoDB Map-Reduce 동적 스키마와 결합 문서
을 감안할 때 두 문서 :
function() {
emit(
this.atomic,
{doc: this.doc, array: this.array}
);
}
잘못된 축소 기능은 다음과 같습니다 :
나는 결과를 싶습니다{
"_id" : ObjectId("530c8b58d95cd926144055d9"),
"atomic" : "p",
"doc" : {
"d1" : "t"
},
"array" : ["e"]
},
{
"_id" : ObjectId("530c8b71d95cd926144055da"),
"atomic" : "p",
"doc" : {
"d2" : "r"
},
"array" : ["f"]
}
는지도 기능이
{
"_id" : "p",
"value" : {
"doc" : {
"d1" : "t",
"d2" : "r"
},
"array" : ["e", "f"]
}
}
할 수
function (key, values) {
var reduced = {doc:{}, array:[]};
values.forEach(function(val){
for(var i = 0; i < val.array.length; i++)
reduced.array.push(val.array[i]);
val.doc.forEach(function(kvp){reduced.doc.add(kvp.key, kvp.value);});
});
return reduced;
}
배열이있는 부분이 좋으므로 엉망인 문서를 결합하려고합니다 (예 : 누락 된 기능으로 인해 실행되지 않음). 내가 생각할 수있는 모든 순열을 시도했다. 배열에 val.doc를 추가하면 모든 것이 나타나고, 하나의 문서로 병합하는 방법을 알 수 없다.
문서의 필드가 동적이어서 이름으로 참조 할 수 없습니다.
도움을 주시면 감사하겠습니다.
뜨아, 내가 노력하지 않은 한 가지. 감사! – mikkelfishman