2012-07-31 3 views
0

오늘 내지도 함수가 어설 션 오류 13076 '재귀 toObject'코드를보고하기 시작했습니다. 어제 괜찮 았어.'재귀 toObject'13076 assertion이 MongoDB에서 실패했습니다.

여기 내지도 기능이다 : 나는 foreach는 기능을 가진 루프 교체 시도

function() { 
    for(i=0; i<this.values.length; i++) { 
     emit(this.values[i].id, { 
      'id': this.values[i].id, 
      'start_date': this.values[i].start_date, 
      'end_date': this.values[i].end_date, 
      'hash': this.values[i].hash, 
      'url': this.values[i].url}); 
    } 
} 

하지만 결과는 동일합니다.

무엇 하나의 방출 범위 변수 제한지도 기능을 가진 재미있는 기능이 잘 작동 있습니다 :

function() { 
    for(i=0; i<this.values.length; i++) { 
     if(this.values[i].id == myId) { 
      emit(this.values[i].id, { 
       'id': this.values[i].id, 
       'start_date': this.values[i].start_date, 
       'end_date': this.values[i].end_date, 
       'hash': this.values[i].hash, 
       'url': this.values[i].url}); 
     } 
    } 
} 

나는 물론, 코드에서 직접이 매핑을 수행 할 수 있습니다,하지만 난이 발생하고 싶지 않아요 MapReduce를 사용해야 할 때 다른 오류가 발생했습니다.

답변

0

그래, 오류 메시지가 정말 막연했지만 문제는 '값'배열의 'id'필드 값이 중복되어 발생하는 것으로 보입니다. 배열 요소 중 하나에서 id를 변경하면 함수가 다시 작동하기 시작합니다.