AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.

mongoimport 예제 가이드

MongoDB JSON 및 CSV 파일을 기본 데이터 세트로 가져올 수 있는 mongoimport 도구를 제공합니다. 이 가이드 mongoimport 를 효과적으로 사용하여 데이터를 MongoDB database 로 이동하는 방법을 설명합니다.

  • 예시 파일을 만듭니다.

    1
    mkdir test-datasets cd test-datasets
    2
    @' { "tripduration": 602, "starttime": "2019-12-01 00:00:05.5640", "stoptime": "2019-12-01 00:10:07.8180", "start station id": 3382, "start station name": "Carroll St & Smith St", "start station latitude": 40.680611, "start station longitude": -73.99475825, "end station id": 3304, "end station name": "6 Ave & 9 St", "end station latitude": 40.668127, "end station longitude": -73.98377641, "bikeid": 41932, "usertype": "Subscriber", "birth year": 1970, "gender": "male" }'@ | Set-Content -Path ride_01.json @' { "tripduration": 1206, "starttime": "2019-12-01 00:00:10.9630", "stoptime": "2019-12-01 00:20:17.8820", "start station id": 362, "start station name": "Broadway & W 37 St", "start station latitude": 40.75172632, "start station longitude": -73.98753523, "end station id": 500, "end station name": "Broadway & W 51 St", "end station latitude": 40.76228826, "end station longitude": -73.98336183, "bikeid": 18869, "usertype": "Customer", "birth year": 1999, "gender": "male" }'@ | Set-Content -Path ride_02.json @' { "tripduration": 723, "starttime": "2019-12-01 00:00:11.8180", "stoptime": "2019-12-01 00:12:14.8310", "start station id": 146, "start station name": "Hudson St & Reade St", "start station latitude": 40.71625008, "start station longitude": -74.0091059, "end station id": 238, "end station name": "Bank St & Washington St", "end station latitude": 40.7361967, "end station longitude": -74.00859207, "bikeid": 15334, "usertype": "Subscriber", "birth year": 1997, "gender": "male" }'@ | Set-Content -Path ride_03.json @' [ { "tripduration": 602, "starttime": "2019-12-01 00:00:05.5640", "stoptime": "2019-12-01 00:10:07.8180", "start station id": 3382, "start station name": "Carroll St & Smith St", "start station latitude": 40.680611, "start station longitude": -73.99475825, "end station id": 3304, "end station name": "6 Ave & 9 St", "end station latitude": 40.668127, "end station longitude": -73.98377641, "bikeid": 41932, "usertype": "Subscriber", "birth year": 1970, "gender": "male" }, { "tripduration": 1206, "starttime": "2019-12-01 00:00:10.9630", "stoptime": "2019-12-01 00:20:17.8820", "start station id": 362, "start station name": "Broadway & W 37 St", "start station latitude": 40.75172632, "start station longitude": -73.98753523, "end station id": 500, "end station name": "Broadway & W 51 St", "end station latitude": 40.76228826, "end station longitude": -73.98336183, "bikeid": 18869, "usertype": "Customer", "birth year": 1999, "gender": "male" }, { "tripduration": 723, "starttime": "2019-12-01 00:00:11.8180", "stoptime": "2019-12-01 00:12:14.8310", "start station id": 146, "start station name": "Hudson St & Reade St", "start station latitude": 40.71625008, "start station longitude": -74.0091059, "end station id": 238, "end station name": "Bank St & Washington St", "end station latitude": 40.7361967, "end station longitude": -74.00859207, "bikeid": 15334, "usertype": "Subscriber", "birth year": 1997, "gender": "male" } ]'@ | Set-Content -Path rides.json @' 602,"2019-12-01 00:00:05.5640","2019-12-01 00:10:07.8180",3382,"Carroll St & Smith St",40.680611,-73.99475825,3304,"6 Ave & 9 St",40.668127,-73.98377641,41932,"Subscriber",1970,1 1206,"2019-12-01 00:00:10.9630","2019-12-01 00:20:17.8820",362,"Broadway & W 37 St",40.75172632,-73.98753523,500,"Broadway & W 51 St",40.76228826,-73.98336183,18869,"Customer",1999,1 723,"2019-12-01 00:00:11.8180","2019-12-01 00:12:14.8310",146,"Hudson St & Reade St",40.71625008,-74.0091059,238,"Bank St & Washington St",40.7361967,-74.00859207,15334,"Subscriber",1997,1'@ | Set-Content -Path rides_no_header.json
  • MongoDB 연결 문자열 찾기.

    중요

    MongoDB Atlas 연결 문자열은 다음 예시와 유사합니다.

    mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/?retryWrites=true&w=majority

mongoimport 는 JSON, CSV 및 TSV 파일에서 MongoDB 컬렉션으로 데이터를 가져오기 위한 명령줄 도구입니다. mongoimport 는 JSON 조작을 위한 JQ, CSV 조작을 위한 CSVKit 또는 인터넷의 서버에서 데이터 파일을 동적으로 다운로드하기 위한 curl 과 같은 다른 명령줄 도구와 결합할 수 있습니다.

JSON 은 MongoDB 문서와 같은 계층적 데이터 형식일 뿐만 아니라 인코딩하는 데이터 유형에 대해서도 명시적입니다.

CSV (및 TSV ) 데이터는 표 형식이며 각 행은 별도의 문서 로 MongoDB 에 가져옵니다. 이는 이러한 형식이 MongoDB 문서 와 같은 방식으로 계층적 데이터를 지원 수 없음을 의미합니다. CSV 데이터를 MongoDB 로 가져올 때 mongoimport 는 특정 필드 의 유형을 식별할 때 합리적인 선택을 시도합니다. 이 동작은 플래그 또는 유형 사양으로 재정의할 수 있습니다.

MongoDB Atlas 연결 문자열 사용하여 mongoimport 를 test 데이터베이스 및 test-collection 컬렉션에 연결합니다.

mongoimport --uri 'mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/?retryWrites=true&w=majority' \ --db=test \ --collection=test-collection

데이터베이스 컬렉션 에 대한 성공적인 연결은 다음과 유사합니다.

2025-07-14T10:22:58.317-0400 connected to: mongodb+srv://cluster0.zoikgns.mongodb.net/2025-07-14T10:23:01.318-0400 test.test-collection 0B2025-07-14T10:23:04.318-0400 test.test-collection 0B...

데이터베이스 컬렉션 에 성공적으로 연결한 후, 예제를 따라 를 mongoimport 사용하여 데이터를 MongoDB 로 가져오는 방법을 학습 .

다음 예시는 그 방법을 보여줍니다.

--file 옵션을 사용하여 MongoDB 컬렉션으로 가져올 데이터가 포함된 파일의 위치와 이름을 지정합니다.

다음 예시 파일의 경로 --file=ride_01.json을(를) 제공하여 test 데이터베이스 의 새 컬렉션 test-collection(으)로 ride_01.json 파일 가져옵니다.

mongoimport --uri 'mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/?retryWrites=true&w=majority' \ --db=test \ --collection=test-collection \ --file=ride_01.json

성공적인 가져오기는 다음과 유사합니다.

2025-07-14T11:47:01.303-0400 connected to: mongodb+srv://[**REDACTED**]@cluster0.zoikgns.mongodb.net/?retryWrites=true&w=majority&appName=Cluster02025-07-14T11:47:01.391-0400 1 document(s) imported successfully. 0 document(s) failed to import.

성공적인 데이터 가져오기를 확인하려면 Atlas UI를 사용할 수 있습니다.

참고

가져온 각 문서에 대해 MongoDB는 필요한 고유한 _id 값을 생성합니다.

파일 지정하지 않으면 mongoimport 는 표준 입력에서 데이터를 읽습니다(예: stdin). 다음 예시 여러 문서를 mongoimport로 파이프하여 가져온 다음 stdin에서 데이터를 읽는 방법을 보여 줍니다.

echo "{\"bikeid\":\"1234\"}\n{\"bikeid\":\"5678\"}" | mongoimport --uri 'mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/?retryWrites=true&w=majority' \ --db=test \ --collection=test-collection-stdin

성공적인 가져오기는 다음과 유사합니다.

2025-07-14T11:08:08.884-0600 connected to: mongodb+srv://[**REDACTED**]@cluster0.zoikgns.mongodb.net/?retryWrites=true&w=majority&appName=Cluster02025-07-14T11:08:09.095-0600 2 document(s) imported successfully. 0 document(s) failed to import.

다른 도구(예: cat)에서 여러 JSON 문서를 파이프 mongoimport(으)로 여러 파일을 가져올 수 있습니다. 가져올 JSON 파일이 포함된 디렉토리 에서 다음 명령을 실행 문서를 가져올 수 있습니다.

cat *_*.json | mongoimport --uri 'mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/?retryWrites=true&w=majority' \ --db=test \ --collection=test-collection-many

성공적인 가져오기는 다음과 유사합니다.

2025-07-21T16:48:23.519-0400 connected to: mongodb+srv://[**REDACTED**]@cluster0.zoikgns.mongodb.net/?retryWrites=true&w=majority&appName=Cluster02025-07-21T16:48:23.627-0400 3 document(s) imported successfully. 0 document(s) failed to import.

문서의 JSON 배열 가져오려면 --jsonArray 옵션을 사용하여 데이터 형식을 지정할 수 있습니다. 파일 또는 표준 입력일 수 있는 데이터 소스 별도로 지정합니다. 다음 예시 단일 JSON 배열 포함된 rides.json 파일 가져옵니다.

mongoimport --uri 'mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/?retryWrites=true&w=majority' \ --db=test \ --collection=test-collection-array \ --file=rides.json \ --jsonArray

성공적인 가져오기는 다음과 유사합니다.

2025-07-14T11:48:10.829-0400 connected to: mongodb+srv://[**REDACTED**]@cluster0.zoikgns.mongodb.net/?retryWrites=true&w=majority&appName=Cluster02025-07-14T11:48:10.899-0400 3 document(s) imported successfully. 0 document(s) failed to import.

--jsonArray 옵션을 추가하지 않으면 MongoDB 문서는 배열이 아닌 JSON 객체에 비교되므로 mongoimport 가 실패하고 cannot decode array into a Document 오류가 발생합니다.

참고

배열 문서 에 값으로 저장 수는 있지만 문서 배열 될 수 없습니다.

MongoDB 데이터를BSON 으로 저장하므로 JSON 으로 가져온 필드를 특정 BSON types로 인식하려면 확장JSON 사용해야 합니다. 즉, 다음 중첩 구조에서 MongoDB 원래 string 로 인식한 필드 제공하여 MongoDB 이를 date 유형으로 인식하도록 할 수 있습니다.

"starttime": { "$date": "2019-12-01T00:00:05.5640Z"}

기존 데이터를 변환하려면 JQ섹션을 참조하세요.

가져올 CSV 또는 TSV 파일이 있는 경우 각각 --type=csv 또는 --type=tsv를 사용하여 mongoimport 에 예상되는 형식을 지정합니다.

CSV 또는 TSV 파일 헤더 행이 있는 경우 --headerline 옵션을 mongoimport 사용하여 에 첫 번째 줄을 문서 로 가져오지 않도록 지시합니다.

CSV 및 TSV 데이터에는 유형 정보가 포함되어 있지 않으므로 mongoimport를 호출할 때 필드 유형을 지정하면 이 문제를 해결할 수 있습니다. 에 유형 정보를 제공하는 첫 번째 방법은 옵션을 사용하여 mongoimport --fields 명령줄 에 필드 이름을 나열하는 것입니다.

mongoimport --uri 'mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/?retryWrites=true&w=majority' \ --db=test \ --collection=test-field-file \ --file=rides_no_header.csv \ --type=csv \ --fields="tripduration","starttime","stoptime","start station id","start station name","start station latitude","start station longitude","end station id","end station name","end station latitude","end station longitude","bikeid","usertype","birth year","gender"

에 유형 정보를 제공하는 또 다른 방법은 와 같은 파일 에 필드 이름을 넣고 mongoimport field_file.txt --fieldFile 옵션으로 점 .

@"tripdurationstarttimestoptimestart station idstart station namestart station latitudestart station longitudeend station idend station nameend station latitudeend station longitudebikeidusertypebirth yeargender"@ | Set-Content -Path field_file.txt
mongoimport --uri 'mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/?retryWrites=true&w=majority' \ --db=test \ --collection=test-field-file \ --file=rides_no_header.csv \ --type=csv \ --fieldFile=field_file.txt

--fields 및 --fieldFile 옵션에 대한 성공적인 가져오기는 다음과 유사합니다.

2025-07-14T11:48:10.829-0400 connected to: mongodb+srv://[**REDACTED**]@cluster0.zoikgns.mongodb.net/?retryWrites=true&w=majority&appName=Cluster02025-07-14T11:48:10.899-0400 3 document(s) imported successfully. 0 document(s) failed to import.

성공적인 데이터 가져오기를 확인하려면 Atlas UI를 사용할 수 있습니다.

위에서 mongoimport 가 데이터 유형을 자동으로 결정하는 것을 볼 수 있습니다. 대신 일부 또는 전체 필드의 유형을 지정하려면 --columnsHaveTypes 옵션을 사용하거나 --fieldFile 옵션으로 사용하는 파일에 유형을 추가할 수 있습니다.

@"tripduration.auto()starttime.date(2006-01-02 15:04:05)stoptime.date(2006-01-02 15:04:05)start station id.auto()start station name.auto()start station latitude.auto()start station longitude.auto()end station id.auto()end station name.auto()end station latitude.auto()end station longitude.auto()bikeid.auto()usertype.auto()birth year.auto()gender.auto()"@ | Set-Content -Path field_file_with_types.txt
mongoimport --uri 'mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/?retryWrites=true&w=majority' \ --db=test \ --collection=test-field-file \ --file=test-datasets/rides_no_header.csv \ --type=csv \ --fieldFile=field_file_with_types.txt

성공적인 가져오기는 다음과 유사합니다.

2025-07-14T11:48:10.829-0400 connected to: mongodb+srv://[**REDACTED**]@cluster0.zoikgns.mongodb.net/?retryWrites=true&w=majority&appName=Cluster02025-07-14T11:48:10.899-0400 3 document(s) imported successfully. 0 document(s) failed to import.

성공적인 데이터 가져오기를 확인하려면 Atlas UI를 사용할 수 있습니다.

이제 mongoimport 가 사용자가 제공한 데이터 유형을 사용하여 가져온 파일 저장 것을 볼 수 있습니다.

mongoimport 와 함께 다른 명령줄 프로그램을 사용하여 데이터 가져오기를 더욱 간소화할 수 있습니다.

JQ는 JSON 데이터를 처리하는 프로세서입니다. JSON 데이터를 필터링, 조작 및 생성하기 위한 강력한 필터링 및 스크립팅 언어 통합되어 있습니다. 다단계 파이프 사용하여 JQ를 통해 데이터를 mongoimport (으)로 파이프 할 수 있습니다. JQ 사용 방법에 대해 자세히 학습 JQ 매뉴얼을 참조하세요.

CSVKit은 CSV 데이터를 필터링하고 조작하기 위한 도구 컬렉션 입니다. 표현식을 기반으로 행을 필터링하는 csvgrep 및 CSV 입력에서 전체 열을 제거하는 csvcut과 같은 CSVKit 도구는 데이터를 mongoimport에 제공하기 전에 슬라이스하는 데 유용한 도구입니다. CSVKit 사용 방법에 대해 자세히 학습하려면 CSVKit 설명서를 참조하세요.

  • 가능한 옵션에 대한 자세한 내용은 mongoimport 문서를 참조하세요.