Docs Menu
Docs Home
/
MongoDB Database Tools
/

mongoexport 예제

이 페이지의 내용

  • CSV 형식으로 내보내기
  • JSON 형식으로 내보내기
  • 인증으로 실행 중인 원격 호스트에서 내보내기
  • 쿼리 결과 내보내기
  • AWS IAM 자격 증명을 사용하여 MongoDB Atlas 클러스터에 연결하기
  • 자세히 알아보기

이 페이지에는 mongoexport 의 예가 나와 있습니다.

mongo shell이 아닌, 시스템 명령줄에서 mongoexport를 실행합니다.

다음 예시 에서 mongoexportusers 데이터베이스 의 컬렉션 contacts 컬렉션 데이터를 CSV 형식으로 /opt/backups/contacts.csv 파일 로 내보냅니다.

mongoexport가 연결되는 mongod 인스턴스가 localhost 포트 번호 27017에서 실행 중입니다.

CSV 형식으로 내보낼 때 내보낼 문서의 필드를 지정해야 합니다. 이 작업은 내보낼 nameaddress 필드를 지정합니다.

mongoexport --db=users --collection=contacts --type=csv --fields=name,address --out=/opt/backups/contacts.csv

이 경우 출력은 다음과 유사합니다:

name, address
Sophie Monroe, 123 Example Road
Charles Yu, 345 Sample Street

CSV 내보내기의 경우에만 줄로 구분된 내보낼 필드의 목록을 포함하는 파일을 지정할 수도 있습니다. 파일에는 한 줄에 하나의 필드만 있어야 합니다.

예를 들어 fields.txt 파일에서 nameaddress 필드를 지정할 수 있습니다:

name
address

그런 다음 --fieldFile 옵션을 사용하여 파일 과 함께 내보낼 필드를 지정합니다.

mongoexport --db=users --collection=contacts --type=csv --fieldFile=fields.txt --out=/opt/backups/contacts.csv

--noHeaderLine 옵션을 사용하여 CSV 내보내기에서 필드 이름을 제외할 수 있습니다. 다음 예시에서는 users 데이터베이스의 contacts 컬렉션에 있는 nameaddress 필드를 내보내고 --noHeaderLine을 사용하여 필드 이름의 출력을 첫 번째 줄로 표시하지 않습니다.

mongoexport --db=users --collection=contacts --type=csv --fields=name,address --noHeaderLine --out=/opt/backups/contacts.csv

그러면 CSV 출력은 다음과 비슷해집니다:

Sophie Monroe, 123 Example Road
Charles Yu, 345 Sample Street

이 예시는 로컬 호스트 포트 번호 27017에서 실행되는 MongoDB 인스턴스에서 contacts 컬렉션의 내보내기를 생성합니다. 그러면 내보내기가 JSON 형식의 contacts.json 파일로 기록됩니다.

mongoexport --db=sales --collection=contacts --out=contacts.json

다음 예에서는 인증이 필요한 원격 MongoDB 인스턴스에서 marketing 데이터베이스의 contacts 컬렉션을 내보냅니다.

다음을 지정합니다:

비밀번호를 입력하라는 mongoexport 메시지를 표시하려면 --password 옵션을 생략하세요.

mongoexport --host=mongodb1.example.net --port=27017 --username=someUser --authenticationDatabase=admin --collection=contacts --db=marketing --out=mdb1-examplenet.json

또는 --uri 옵션을 사용하여 호스팅하다, 포트, 사용자 이름, 인증 데이터베이스 및 db를 지정할 수 있습니다.

URI 문자열에서 비밀번호를 생략하여 mongoexport가 비밀번호 입력 메시지를 표시하도록 합니다:

mongoexport --uri='mongodb://someUser@mongodb0.example.com:27017/marketing?authsource=admin' --collection=contacts --out=mdb1-examplenet.json

--query 옵션으로 쿼리 필터를 제공하여 쿼리 결과만 내보낼 수 있으며 '--db' 옵션을 사용하여 결과를 단일 데이터베이스로 제한할 수 있습니다.

예를 들어, 이 명령은 sales 데이터베이스의 contacts 컬렉션에서 dept 라는 필드가 "ABC" 와 같고 date 필드가 ISODate("2018-01-01") ( 날짜에 표준 형식 사용 { "$date": "YYYY-MM-DDTHH:mm:ss.mmm<offset>"} )

mongoexport --db=sales --collection=contacts --query='{"dept": "ABC", date: { $gte: { "$date": "2018-01-01T00:00:00.000Z" } }}'

쿼리 문서가 셸 환경과 상호 작용하지 않도록 하려면 쿼리 문서를 작은따옴표('{ ... }')로 묶어야 합니다.

버전 100.1.0의 새로운 기능.

Amazon Web Services IAM 자격 증명 을 통해 인증을 지원하도록 MongoDB Atlas connection string 구성된 클러스터에 연결하려면 mongoexport 다음과 같이 에 를 제공합니다.

mongoexport 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>

이러한 방식으로 AWS IAM 자격 증명을 사용하여 Atlas에 연결하면 이 예와 같이 MONGODB-AWS authentication mechanism$external authSource가 사용됩니다.

AWS 세션 토큰을 사용하는 경우에도 다음과 같이 AWS_SESSION_TOKEN authMechanismProperties 값과 함께 제공합니다.

mongoexport 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<aws session token>' <other options>

참고

AWS 액세스 키 ID, 보안 액세스 키 또는 세션 토큰에 다음 문자가 포함되어 있는 경우

: / ? # [ ] @

이러한 문자는 퍼센트 인코딩을 사용해 변환해야 합니다.

또는 다음과 같이 --username, --password--awsSessionToken 옵션을 대신 사용하여 AWS 액세스 키 ID, 시크릿 액세스 키 및 세션 토큰(선택 사항)을 각각 연결 문자열 외부에 제공할 수 있습니다.

mongoexport 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' --username <aws access key id> --password <aws secret access key> --awsSessionToken <aws session token> <other options>

명령줄 매개변수로 제공되는 경우 이러한 세 가지 옵션에는 퍼센트 인코딩이 필요하지 않습니다.

표준 AWS IAM 환경 변수를 사용하여 플랫폼에서 이러한 자격 증명을 설정할 수도 있습니다. mongoexportMONGODB-AWS authentication mechanism을 사용할 때 다음 환경 변수를 확인합니다.

  • AWS_ACCESS_KEY_ID

  • AWS_SECRET_ACCESS_KEY

  • AWS_SESSION_TOKEN

설정된 경우 이러한 자격 증명은 연결 문자열이나 명시적 옵션을 통해 지정할 필요가 없습니다.

참고

AWS 환경 변수를 사용하여 이러한 값을 지정하기로 선택한 경우 이러한 자격 증명에 해당하는 명시적 또는 연결 문자열 옵션과 조합하여 사용할 수 없습니다. 액세스 키 ID 비밀 액세스 키(사용 중인 경우 세션 토큰도 함께 필요)에 환경 변수를 사용하거나 또는 명시적 또는 연결 문자열 옵션을 사용하여 각각을 지정합니다.

다음 예시에서는 bash 셸에서 이러한 환경 변수를 설정합니다.

export AWS_ACCESS_KEY_ID='<aws access key id>'
export AWS_SECRET_ACCESS_KEY='<aws secret access key>'
export AWS_SESSION_TOKEN='<aws session token>'

다른 셸에서 환경 변수를 설정하는 구문은 다를 수 있습니다. 자세한 내용은 사용 중인 플랫폼의 설명서를 참조하세요.

다음 명령어로 이러한 환경 변수가 설정되었는지 확인할 수 있습니다.

env | grep AWS

설정이 완료되면 다음 예시에서는 이러한 환경 변수를 사용하여 MongoDB Atlas 클러스터에 연결합니다.

mongoexport 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>

돌아가기

행동