mongoexport: 컬렉션을 파일로 내보내기
학습자는 mongoexport를 사용해 컬렉션을 JSON 또는 CSV 형식으로 내보내고, 특정 필드를 선택하며 필터를 적용합니다.
mongoexport: 컬렉션을 파일로 내보내기은(는) CoddyKit의 무료 MongoDB Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 MongoDB Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. MongoDB Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
mongoexport란 무엇인가요?
mongoexport는 컬렉션에서 문서를 읽어 파일에 기록하는 MongoDB Database Tools 명령줄 유틸리티입니다. 데이터를 JSON(JSONL 형식, 한 줄에 문서 하나) 또는 CSV 형식으로 출력합니다. 주요 용도로는 분석을 위한 데이터 백업 생성, 다른 시스템으로의 데이터 이전, 디버깅을 위한 스냅샷 공유, 운영 환경의 샘플 데이터로 다른 환경 초기화 등이 있습니다.
기본 JSON 내보내기
가장 간단한 내보내기 명령은 원본 데이터베이스, 컬렉션, 출력 파일을 지정합니다. 기본적으로 mongoexport는 JSONL을 기록합니다. 즉, 한 줄에 JSON 문서 하나를 기록하며, 대규모 내보내기를 스트리밍하거나 mongoimport로 다시 가져올 때 적합합니다. --out을 사용해 출력 파일 이름을 지정합니다. 이 옵션이 없으면 문서가 표준 출력으로 출력됩니다.
# Export the 'products' collection to JSONL
mongoimport \
--uri 'mongodb://localhost:27017/myapp' \
--collection products \
--out products_export.json
# Each line in the output file is one document:
# {"_id":{"$oid":"..."},"name":"Widget","price":9.99}
# {"_id":{"$oid":"..."},"name":"Gadget","price":19.99}CSV 형식으로 내보내기
쉼표로 구분된 값으로 내보내려면 --type csv를 사용합니다. CSV로 내보낼 때는 --fields를 사용해 포함할 필드를 나열해야 합니다. 스키마가 유연한 컬렉션에서는 모든 필드를 자동으로 추론할 수 없기 때문입니다. CSV 출력의 첫 번째 행에는 지정한 필드에 해당하는 열 머리글이 들어갑니다.
# Export selected fields as CSV
mongoimport \
--uri 'mongodb://localhost:27017/myapp' \
--collection products \
--type csv \
--fields 'name,price,category,rating' \
--out products_export.csv
# Output:
# name,price,category,rating
# Widget,9.99,tools,4.5
# Gadget,19.99,electronics,4.2내보낼 문서 필터링
전체 컬렉션 대신 조건에 맞는 문서만 내보내려면 JSON 필터 문서와 함께 --query 플래그를 사용합니다. 특정 월의 모든 주문이나 특정 역할을 가진 모든 사용자처럼 필요한 데이터의 일부만 추출할 때 유용합니다.
# Export only shipped orders from January 2024
mongoimport \
--uri 'mongodb://localhost:27017/myapp' \
--collection orders \
--query '{"status":"shipped","createdAt":{"$gte":{"$date":"2024-01-01T00:00:00Z"},"$lt":{"$date":"2024-02-01T00:00:00Z"}}}' \
--out january_orders.json내보낼 특정 필드 선택
출력에 포함할 필드 이름을 쉼표로 구분해 --fields(또는 -f)와 함께 지정합니다. 목록에 없는 필드는 제외됩니다. 이는 조회 쿼리에서 포함 프로젝션을 사용하는 것과 같습니다. --query와 함께 사용하면 필요한 데이터만 정확히 내보낼 수 있어 파일 크기를 작게 유지하고 관련 필드만 공유할 수 있습니다.
# Export only name, email, and createdAt for active users
mongoimport \
--uri 'mongodb://localhost:27017/myapp' \
--collection users \
--query '{"isActive":true}' \
--fields 'name,email,createdAt' \
--out active_users.json
# Sensitive fields like passwordHash are automatically excluded내보내기 출력 정렬
특정 순서로 문서를 내보내려면 JSON 정렬 문서와 함께 --sort를 사용합니다. 후속 처리에서 출력 파일의 순서가 중요할 때 유용합니다. 예를 들어 재생을 위해 이벤트를 시간순으로 내보내거나, 보고서를 위해 사용자를 이름순으로 내보낼 수 있습니다.
# Export events in chronological order
mongoimport \
--uri 'mongodb://localhost:27017/myapp' \
--collection events \
--sort '{"timestamp":1}' \
--out events_sorted.json내보낼 문서 수 제한
최대 N개의 문서만 내보내려면 --limit을 사용하고, 처음 N개의 문서를 건너뛰려면 --skip을 사용합니다. 이 플래그를 사용하면 최근 주문 1,000개처럼 샘플을 내보내거나, 건너뛸 위치를 바꾸어 컬렉션을 반복 호출하면서 여러 묶음으로 내보낼 수 있습니다. 제한을 의미 있게 적용하려면 --sort와 함께 사용합니다.
# Export the 100 most recently created products (sample for testing)
mongoimport \
--uri 'mongodb://localhost:27017/myapp' \
--collection products \
--sort '{"createdAt":-1}' \
--limit 100 \
--out products_sample.jsonExtended JSON과 완화 모드 비교
mongoexport는 기본적으로 Extended JSON을 출력합니다. 이 형식은 JSON에 기본적으로 없는 BSON 유형을 나타내기 위해 특수 래퍼 객체를 사용합니다. 예를 들어 ObjectId에는 {"$oid":"..."}를, 날짜에는 {"$date":"..."}를 사용합니다. --relaxed를 사용하면 완화된 Extended JSON을 출력할 수 있습니다. 이 모드에서는 날짜가 ISO 문자열이 되고 숫자가 일반 JSON 숫자가 되어 더 읽기 쉽지만, 다시 가져올 때 일부 유형 정보가 손실됩니다.
# Default (Canonical Extended JSON)
# {"_id":{"$oid":"65a..."},"price":{"$numberDecimal":"9.99"}}
# Relaxed Extended JSON — more human-readable
mongoimport \
--uri 'mongodb://localhost:27017/myapp' \
--collection products \
--relaxed \
--out products_relaxed.json
# {"_id":"65a...","price":9.99}MongoDB Atlas에서 내보내기
Atlas 클러스터에서 내보내려면 --uri 플래그에 Atlas 클러스터의 SRV 연결 문자열을 사용합니다. Atlas에는 TLS가 필요하며 SRV URI를 사용하면 자동으로 활성화됩니다. 매우 큰 Atlas 컬렉션의 경우 Atlas UI의 'Export Collection' 버튼을 사용하거나, S3 또는 다른 데이터 레이크로 분석용 데이터를 내보낼 때 Atlas Data Federation을 사용하는 것이 좋습니다.
# Export from Atlas cluster
MONGO_URI='mongodb+srv://user:password@cluster0.abc.mongodb.net/myapp'
mongoimport \
--uri "$MONGO_URI" \
--collection orders \
--query '{"status":"completed"}' \
--out completed_orders.jsonmongoexport와 mongodump 비교
사용 사례에 맞는 도구를 선택하세요:
- mongoexport: 사람이 읽을 수 있는 JSON 또는 CSV를 출력하며, 데이터 공유, 분석 또는 선택적 이전에 적합하고 필터링과 프로젝션을 지원합니다
- mongodump: 바이너리 BSON을 출력하며, 전체 컬렉션 또는 데이터베이스 백업에 적합합니다. 더 빠르고 모든 BSON 유형을 손실 없이 보존하지만 사람이 읽을 수는 없습니다
mongodump를 사용하는 것이 좋습니다. 데이터 공유나 선택적 내보내기에는 mongoexport를 사용하세요.내보내기 출력을 다른 명령으로 전달하기
--out 플래그가 없으면 mongoexport는 표준 출력으로 출력하므로 유닉스 파이프를 조합할 수 있습니다. 출력을 wc -l로 전달해 문서 수를 세거나, grep으로 행을 필터링하거나, jq로 JSON을 처리하거나, 완전히 다른 명령으로 전달할 수 있습니다. 따라서 mongoexport는 데이터 처리 스크립트에서 유연하게 사용할 수 있는 구성 요소입니다.
# Count documents exported
mongoimport --uri '...' --collection products | wc -l
# Pipe to jq to extract just product names
mongoimport --uri '...' --collection products | jq -r '.name'
# Compress while exporting
mongoimport --uri '...' --collection products | gzip > products.json.gz빠른 확인
이 레슨에서 배운 MongoDB 및 NoSQL 데이터베이스 개념을 이해했는지 확인해 보세요.
레슨 요약
이 레슨에서는 다음을 배웠습니다. mongoexport는 선택적 필터, 필드 선택, 정렬을 적용해 컬렉션에서 JSONL 또는 CSV를 출력합니다. --query를 사용하면 원하는 문서 일부만 내보낼 수 있습니다. 또한 전체 백업에는 mongodump가, 선택적이고 사람이 읽을 수 있는 내보내기에는 mongoexport가 더 적합합니다. 다음으로는 전체 바이너리 데이터베이스 백업을 위한 mongodump와 mongorestore를 살펴보겠습니다.
AI 튜터와 함께 JavaScript을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 30
- 레슨
- 120
자주 묻는 질문
“mongoexport: 컬렉션을 파일로 내보내기” 강의는 무료인가요?
네 — “mongoexport: 컬렉션을 파일로 내보내기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 MongoDB Academy 강의 전체를 잠금 해제할 수 있습니다. MongoDB Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“mongoexport: 컬렉션을 파일로 내보내기”에서 뭘 배우나요?
학습자는 mongoexport를 사용해 컬렉션을 JSON 또는 CSV 형식으로 내보내고, 특정 필드를 선택하며 필터를 적용합니다. 브라우저에서 직접 실행하는 실습 코드로 MongoDB Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
MongoDB Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 MongoDB Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“mongoexport: 컬렉션을 파일로 내보내기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 MongoDB Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 MongoDB Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- mongoimport: JSON 및 CSV 파일 불러오기
- mongoexport: 컬렉션을 파일로 내보내기
- 전체 백업을 위한 mongodump와 mongorestore
- Node.js 스크립트로 데이터 시드하기