[MONGODB] MongoDB의 변수를 사용하는 방법지도 기능을지도-감소
MONGODBMongoDB의 변수를 사용하는 방법지도 기능을지도-감소
문서 감안할 때
{_id:110000, groupings:{A:'AV',B:'BV',C:'CV',D:'DV'},coin:{old:10,new:12}}
내 사양은 그룹으로 사용자는 런타임에 사용자가 앞까지 알려져 있지 않다에 관심이 있지만, 지정, 실행시에 매핑 및 통합에 대한 속성의 사양을 요구한다.
예를 들어, 사용자가 지정하는 것 [A, B]의 매핑 배출 발생할
emit( {A:this.groupings.A,B:this.groupings.B},this.coin )
또 다른 매핑 배출의 원인이됩니다 [A, C]를 지정하고 싶을 때
emit( {A:this.groupings.A,C:this.groupings.C},this.coin )
맵퍼 및 감속기 기능은 서버 측을 실행하고 클라이언트 변수에 대한 액세스 권한이없는 c를 B는 / 나는 매퍼 기능의 변수 맵 키를 사용하는 방법과 함께 올 수 없었다.
내가지도 기능의 실행의 범위에 의해 그룹 것들의 목록을 참조 할 수 있다면, 이것은 모두 아주 간단합니다. 그러나, 매핑 함수가 다른 범위에서이 점점 끝 c를 b를 / 나는이 작업을 수행하는 방법을 모르거나 심지어 가능합니다.
나는 드라이버를 통해 실행을 동적으로 빌드 자바 스크립트에 노력을 시작하기 전에, 사람이 더 나은 제안이 있습니까? 어쩌면 '그룹'기능은 더 나은이 시나리오를 처리 할 것인가?
해결법
-
==============================
1.읽기 전용 데이터로지도-감소 명령에 "범위"매개 변수를 사용하여 기능을지도-감소, 글로벌 전달할 수 있습니다. 아주 잘 난 두려워, 문서화 아니에요.
읽기 전용 데이터로지도-감소 명령에 "범위"매개 변수를 사용하여 기능을지도-감소, 글로벌 전달할 수 있습니다. 아주 잘 난 두려워, 문서화 아니에요.
-
==============================
2.@ 데이브 그리피스에 의해 지적, 당신은 맵리 듀스 함수의 범위 매개 변수를 사용할 수 있습니다.
@ 데이브 그리피스에 의해 지적, 당신은 맵리 듀스 함수의 범위 매개 변수를 사용할 수 있습니다.
나는 다른 사람에 의해 지적 밖으로 같이 서류는 매우 설명되지 않는 경우가 있기 제대로 함수에 전달하는 방법을 알아 내기 위해 조금 고생. 마지막으로, 나는 맵리 듀스 3 PARAMS을 기대 것을 깨달았다 :
결국, 나는 자바 스크립트에 다음 코드에 도착했다 :
// I define a variable external to my map and to my reduce functions var KEYS = {STATS: "stats"}; function m() { // I use my global variable inside the map function emit(KEYS.STATS, 1); } function r(key, values) { // I use a helper function return sumValues(values); } // Helper function in the global scope function sumValues(values) { var result = 0; values.forEach(function(value) { result += value; }); return result; } db.something.mapReduce( m, r, { out: {inline: 1}, // I use the scope param to pass in my variables and functions scope: { KEYS: KEYS, sumValues: sumValues // of course, you can pass function objects too } } );
from https://stackoverflow.com/questions/7273379/how-to-use-variables-in-mongodb-map-reduce-map-function by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 어떻게하여 MongoDB에서 배열의 n 번째 요소를 삭제합니다 (0) | 2019.12.24 |
---|---|
[MONGODB] 쉽게에 가이드를 저장하는 실제 GUID를 검색하는 효율적인 방법이 무엇인지 문서의 아이디에 대한 MongoDB를하고 가이드와 함께? (0) | 2019.12.24 |
[MONGODB] MongoDB의 연결을 확인하는 방법 (0) | 2019.12.24 |
[MONGODB] 인덱스가 MongoDB를에 존재하는지 확인 (0) | 2019.12.24 |
[MONGODB] 몽구스 findOne를 사용하는 방법 (0) | 2019.12.24 |