경고
데이터 가져오기 및 내보내기가 ($) 및 (.)와 충돌하는 경우
MongoDB 5.0 부터 문서 필드 이름 앞에 달러 문자($)를 붙일 수 있으며 마침표 문자(.)를 포함할 수 있습니다. 그러나 mongoimport 및 mongoexport 는 해당 문자를 사용하는 필드 이름에서는 작동하지 않습니다.
MongoDB Extended JSON v2는 래퍼 타입(wrapper type)과 이름이 같은 래퍼 타입(wrapper type)과 필드를 구분할 수 없습니다. 해당 BSON 표현에 접두사가 붙은 키($)가 포함될 수 있는 상황에서는 Extended JSON 형식을 사용하지 마세요. DBRef 메커니즘에는 해당 일반 규칙이 적용되지 않습니다.
필드 이름에 mongoimport 및 mongoexport를 (.)와 함께 사용하는 것도 제한됩니다. CSV 파일은 (.)를 사용하여 데이터 계층 구조를 나타내기 때문에 필드 이름에 (.)가 있으면 중첩 수준으로 잘못 해석됩니다.
행동
유형 충실도
전체 인스턴스 백업을 수행할 때 모든 리치 BSON 데이터 유형을 보존해야 하는 경우, mongoexport 를 사용하여 Extended JSON v2.0 (Canonical mode) 를 --jsonFormat 옵션으로 지정합니다.
mongoexport --jsonFormat=canonical --collection=<coll> <connection-string>
--jsonFormat를 지정하지 않으면 mongoexport 는 기본값으로 데이터를 확장 JSON v2.0 (완화 모드) 로 출력합니다.
mongoimport 는 복원 시 지정된 대상 데이터 파일에 있는 JSON 형식을 자동으로 사용합니다. 예시 들어 대상 데이터 내보내기 파일 mongoexport 에 의해 --jsonFormat=canonical 이 지정된 경우 표준 모드 사용합니다).
JSON Format
mongoimport는 기본적으로 가져오기 데이터가 확장 JSON v2.0(표준) 또는 확장 JSON v2.0(완화) 형식이어야 합니다. 확장 JSON v1.0을 사용하여 형식이 지정된 데이터를 가져오려면 --legacy 옵션을 지정합니다.
팁
일반적으로 mongoexport와 mongoimport의 버전은 일치해야 합니다. 즉, mongoexport에서 만든 데이터를 가져오려면 해당 버전의 mongoimport를 사용해야 합니다.
문서 순서
기본값 으로 mongoimport 은 문서를 임의의 순서로 삽입할 수 있습니다. 복원 프로세스 중에 문서 순서를 유지하려면 --maintainInsertionOrder 를 사용합니다.
인코딩
mongoimport UTF-8로 인코딩된 데이터 파일만 지원합니다. 다른 인코딩을 사용하면 오류가 발생합니다.
FIPS
mongoimport FIPS 모드를 사용하도록 구성된 mongod/ mongos에 대한 FIPS 호환 연결을 자동으로 생성합니다.
쓰기 고려
--writeConcern 옵션과 --uri connection string 옵션 모두에서 쓰기 고려(write concern)를 지정하면 --writeConcern 값이 URI 문자열에 지정된 쓰기 고려(write concern)를 재정의합니다.
배치
mongoimport , 최대 100,000개의 배치 크기를 사용하여 일괄 삽입/업서트 작업을 수행합니다.
Time Series 컬렉션
Time Series 데이터 가져오려면 를 실행 전에 time series 컬렉션 만들어야 mongoimport 합니다. mongoimport 는 time series 컬렉션 자동 생성을 지원 하지 않습니다. 컬렉션 생성에 대한 자세한 내용은 를 createCollection() 참조하세요.
필요한 액세스 권한
--auth 옵션을 사용해 권한 부여를 수행하는 mongod에 연결하려면 반드시 --username와 --password옵션을 사용해야 합니다. 연결하는 사용자는 데이터를 가져올 데이터베이스에서 최소 readWrite 역할을 유지해야 합니다.