2011-08-29 4 views
1

Mongodb에서 mongoimport로 만든 문서 (--TSV, --headerline)에 추가 속성을 추가하는 방법은 무엇입니까?Mongoimport로로드 된 데이터에 추가 속성 추가

가져올 데이터를 제어 할 수는 없지만 하나의 가져 오기 데이터 세트를 다른 것으로 구별 할 수 있어야하며 파일에서 한 가져 오기를 다른 것으로 가져 오기위한 속성이 없습니다.

답변

0

나는 최선의 선택은 csv/tsv를 구문 분석하고 mongodb로 가져 오기 위해 자신의 스크립트를 작성하는 것이라고 생각합니다. 나는 그것이 파이썬의 10 줄 이하를 차지할 것이라고 생각한다.

db.collecton.update({extraField:null}, {$set:{extraField: ObjectId()}}, false, true) 

이가 인덱스 {extraField에 최선을 작동합니다 : 아무것도 컬렉션에 삽입되지 않으며, 가져 오기 실행이 충분히 멀리 떨어져있는 경우 또는

, 당신은 단지 실행과 같은 것을 할 수 :1}.

+0

큰 제안. 나는 그것이 그것을 끝낼지도 모른다라고 생각한다. – gbegley

+0

외부 유틸리티를 사용하여 성능에 대해 걱정했습니다. 하지만 Google Guava 라인 프로세서와 스프링 데이터 MongoTemplate.exececute (collection, collectionCallback)를 사용하여 직접 작성했습니다. 컬렉션 콜백은 첫 번째 줄을 매핑하고 각 줄에 대한 문서를 추가하며 추가 속성 맵에있는 모든 내용을 각 문서에 추가합니다. 훌륭하게 작동하며 mongoimport만큼 빠릅니다. 관심이있는 사람이라면 GIThub에서 삭제할 것입니다. – gbegley

관련 문제