MapReduce는 MongoDB 인스턴스 내에서 실행됩니다.
지금 다른 프로그래밍 언어 나 플랫폼을 사용하여 MapReduce를 만들 수 없습니다. , 응용 프로그램에 전달했다 당신은 내가 가정 개념을 시뮬레이션 할 수 있지만 모든 데이터를 의미 등
함수의 몸은 호출하여 MongoDB를 (그리고 파편 등)에 Node.js를 과정에서 전송되는
제공된 map
기능의 toString
(here 참조).
if ('function' === typeof map) {
map = map.toString();
}
당신은 map
기능에 기능을 포함 할 수 있지만 성능이 기능의 복잡도가 증가로 사용자의 요구를 충족 확인 할 것입니다. 하지만 여전히 전달한 함수로 제한되며 실행중인 Node.JS의 다른 스크립트에 액세스 할 수 없습니다.
편집 : 또한
, 추가 기능을 첨부합니다 mapReduce
호출의 scope
매개 변수를 사용할 수 있습니다. 예를 들어, 당신은 통과 scope
로 :
{ add10: function(v) { return v + 10; } }
기능이라고 add10
합니다 (reduce
및 finalize
기능도 등) map
전화에서 사용할 수있는 것 : 그 기술을 사용하여, 그래서
var fancyMath = add10(this.total);
제한된 기능을 전달할 수 있습니다. BSON으로 직렬화되어 MongoDB 서버로 보내지기 때문에 자체적으로 (그리고 로컬에서 사용할 수없는 다른 JavaScript 함수를 참조하지 않아야합니다.) 필요합니다.
좋습니다, 감사합니다. 'scope' 인자를 가진 Node 모듈을 전달하는 것은 어떻습니까? – gremo
@Gremo 작동하지 않습니다. 모듈이 BSON으로 직렬화되고 다른 쪽 끝에서 직렬화되지 않습니다. – Sammaye
@Gremo - 무엇을하려하십니까? 당신은 어쨌든 한 번에 하나의 문서에만 접근 할 수 있습니다 ... (나는 당신이 MapReduce에서 너무 많은 것을하려고하는 것에 대해 걱정합니다). – WiredPrairie