C# 드라이버 (1.9.0)와 범위 변수를 사용하여 컬렉션에서 mapreduce를 실행하려고합니다. 나는 다음과 같은 코드를 사용MongoDB - 쿼리를 표준화 할 수 없습니다.
var map = @"function() {
emit(this._id, foo);
};";
var reduce = @"function(key, values) {
return values;
};";
var options = new MapReduceOptionsBuilder();
options.SetOutput(MapReduceOutput.Inline);
options.SetScope(new ScopeDocument("foo", "foo"));
나는 다음과 같은 예외가 얻을이 코드를 사용하는 경우 :
유형의 예외 'MongoDB.Driver.MongoCommandException가'MongoDB.Driver.dll에 발생을 명령 '맵리 듀스가'실패 : 예외 :하지만 사용자 코드에
추가 정보가 처리되지 수 없습니다 를 정규화 쿼리 {} (응답 : { "에 errmsg": "예외 : 수 없습니다 를 정규화 쿼리 { 작동 아래와 같이 나는 범위 변수를 제거하면 0.0})
는 : :} ","코드 "17238는," "확인
는 는var map = @"function() {
//emit(this._id, foo);
emit(this._id, 1);
};";
var reduce = @"function(key, values) {
return values;
};";
var options = new MapReduceOptionsBuilder();
options.SetOutput(MapReduceOutput.Inline);
//options.SetScope(new ScopeDocument("foo", "foo"));
는
사람은 잘못 알고 있나요?
foo의 목적은 무엇입니까? 일부 문서 필드를 기반으로 계산됩니까? – Sebastian
범위를 적용 할 때 setFinalize가 필요합니까? –
@Sebastian Foo는 내지도 함수에서 결과를 필터링하기 위해 사용하려는 변수 일뿐입니다. –