반응형
mongore restore 명령으로 기존 레코드를 바꾸시겠습니까?
mongore restore가 데이터베이스에 존재하는 레코드를 건너뛰는 대신 대체할 수 있는 방법이 있습니까? 기본 동작입니다.
저는 현재 mongodb의 최신 2.4.x 버전을 사용하고 있습니다.
다음 매개 변수를 사용할 수 있습니다.mongorestore:
덤프된 백업에서 컬렉션을 복원하기 전에 대상 데이터베이스에서 컬렉션을 삭제합니다. --drop은 백업에 없는 컬렉션을 삭제하지 않습니다.
아니요. mongore 스토어에서:
기존 데이터베이스로 복원하는 경우 mongore restore는 기존 데이터베이스에만 삽입되고 어떤 종류의 업데이트도 수행하지 않습니다.기존 문서의 대상 데이터베이스 및 컬렉션에 동일한 값 _id 필드가 있는 경우 mongorestore는 해당 문서를 덮어쓰지 않습니다.
데이터베이스 또는 데이터베이스 내의 컬렉션을 몽고레스토어로 완전히 덮어쓰려면 데이터베이스 또는 컬렉션을 삭제합니다(vikas의 답변에 따라 --drop 매개변수 선택).특정 문서를 바꾸거나 중복된 문서를 병합하려면 사용자가 직접 스크립트를 작성하여 복원하고 보다 복잡한 논리를 구현해야 합니다.
컬렉션이 적은 경우 항상 다음을 수행할 수 있습니다.
- mongo는 당신의 목표 컬렉션을 다른 곳에 버립니다.
- 대상 컬렉션 삭제
- mongore 원래 덤프 파일 복원
- mongor는 1단계에서 만든 덤프 파일을 복원합니다.
그러면 우선 순위가 DB의 _ids가 아닌 덤프 파일로 전환됩니다.
사용하여 이 문제를 해결했습니다.
- 컬렉션을 복원하고 출력을 파일에 기록합니다(아래 참조).
mongorestore --db database -c collection ~/path_to_bson > output.txt 2>&1
- 포함된 행을 필터링합니다.
- E11000 duplicate key error collection ...ObjectId(...) - 그런 다음 다중 편집 도구(내 경우 숭고함)를 사용하여 해당 행을 변환합니다.
db.collection.remove({_id: ObjectId(...)}) - 데이터베이스를 다시 복원합니다.
언급URL : https://stackoverflow.com/questions/27666908/mongorestore-command-replace-existing-records
반응형
'programing' 카테고리의 다른 글
| Meteor: 클라이언트에서 Mongo로 파일 업로드 vs 파일 시스템 vs GridFS (0) | 2023.04.29 |
|---|---|
| Visual Studio 2015는 구문 강조가 아닌 면도기 또는 IntelliSense (0) | 2023.04.29 |
| VBA 매크로를 사용하여 워크북 내의 Excel 테이블에서 SQL 쿼리 수행 (0) | 2023.04.29 |
| Dummies에 대한 Azure 로그 또는 WCF 데이터 서비스 필터를 필터링하는 방법 (0) | 2023.04.29 |
| "0이 아닌 종료 코드로 명령 실패"로 인해 빌드가 실패함 (0) | 2023.04.29 |