mapwduce를 실행중인 Mongoid 모델이 여러 개 있습니다. 통합 결과를 단일 daily_stats
모음에 저장하고 싶습니다. 내지도 &이 기능은 모든 3 개 모델에 잘 작동 감소하지만, collection.mapreduce(map, reduce, {:out => "daily_stats", :raw => true})
를 통해 출력 할 경우에도, 다음지도의 결과는 작업이 이전 결과를 덮어 감소 심지어 그들이 중복 키가 없습니다 : photos
에 대한MongoDB에서 공유 mapreduce 결과 모음
{'_id': "2012-06-01", 'values': {photos: 10}}
{'_id': "2012-06-02", 'values': {photos: 10}}
값
{'_id': "2012-06-01", 'values': {comments: 1}}
{'_id': "2012-06-02", 'values': {comments: 6}}
내가 collection.mapreduce(map, reduce, {:out => {:merge => "daily_stats"}, :raw => true})
과도 병합했지만, 그 중 하나가 작동하지 않는 것 : 후속 패스가 반환 할 때 밖으로 던져.
아이디어가 있으십니까?
UPDATE
&이 기능 감소지도는 각 모델이 같다 :
가지도 :
function() {
day = Date.UTC(this.created_at.getFullYear(), this.created_at.getMonth(), this.created_at.getDate());
emit(day, {users: 1});
};
가 감소 : 기능 (키, 값) { var에 users_added_count = 0;
{ "_id" : 1337040000000,
"value" : {
"apartments" : 280,
"price" : 1003653,
"photos" : 83,
"comments" : 0 }
}
, 당신은하지 않았다 및/또는지도 한 번 줄이고 하나의 문서, 즉 방출 실행할 수없는 이유가 당신의 모델에 비해 그 고유 만들려면 : (일, {사용자 : 1}, {사진 : 1}, {의견 : 1}) emit? – Jenna
아, 알겠습니다. 처음에는 사용자, 사진 및 설명을위한 3 개의 별도 컬렉션이 있습니다. 데이터를 병합하는 방법을 설명하기위한 예제를 작성합니다. – Jenna
입력 데이터 모델 "결과 스키마"의 문서입니까? 죄송합니다. 명확한 설명을 위해 더 많은 데이터 예를 제공해주십시오. – Jenna