지금까지 계속 RDB(mysql)을 사용하던 내게 mongoDB를 사용하게 되는 기회가 찾아왔다. 매번 새로움을 배워야하는것에 대해서 어려움이 있지만 그래도 배움을 하고 사용을 확장한다는 것은 늘 긍정으로 받아들이게 되는 연습을 하면 즐겁다!
각설하고 제목대로 noSQL(mongoDB)의 데이터 dump를 해보자!
$ mongodump --host{호스트 정보} --port{포트 번호}
ex) mongodump --host {serverhost} --port {port} --username {username} --password {password} --db {dbname} --authenticationDatabase {인증에 사용할 데이터베이스} --authenticationMechanism {인증메커니즘} --out /path/to/your/dump/directory
여기서
--host : MongoDB 서버의 호스트명
--port : MongoDB 서버의 포트번호
--username : 사용자명
--password : 비밀번호
--db : 덤프할 데이터베이스 이름
--authenticationDatabase : 인증에 사용할 데이터베이스 (일반적으로 사용자 계정이 저장된 데이터베이스)
--authenticationMechanism : 인증 메커니즘 (예: SCRAM-SHA-1)
--out : 덤프 파일을 저장할 디렉토리 경로
$ mongodump --uri={uri} --out={output_directory}
ex) mongodump --uri="mongodb://username:password@serverhost:port/database?auth-mechanism" --out=/path/to/your/dump/directory
여기서
--out : 덤프 파일을 저장할 디렉토리 경로. 예를 들어, --out=./dump를 사용하면 현재 디렉토리에 dump라는 폴더가 생성되고 그 안에 덤프 파일들이 저장된다.
mongodump --uri="mongodb://username:password@serverhost:port/database?auth-mechanism" --collection=yourCollectionName --out=/path/to/your/dump/directory
--gzip : 덤프 파일을 gzip 형식으로 압축하여 저장
--archive : 모든 덤프 데이터를 하나의 아카이브 파일로 저장
예시) 로컬호스트의 기본 db dump
$ mongodump --host localhost(또는 127.0.0.1) --port 27017
이렇게 하면 위치하고있는 디렉토리(폴더) 위치에 dump폴더로 데이터들이 있다.
--uri : 모든 연결 정보를 하나의 문자열로 지정하므로 간편하고 읽기 쉽다.
--host와 --port : 개별 옵션으로 지정해야 하므로 설정이 분리된다.
--uri : URI 문자열 내부에서 모든 세부 설정을 포함할 수 있다.
--host와 --port : 추가적인 인증 정보와 데이터베이스 이름 등을 별도로 지정해야 한다.
이 두 예제는 같은 결과를 도출하지만, 설정 방식이 다르다. 더 간편한 방법을 원한다면 --uri를 사용하는 것이 좋다. 개별적으로 설정을 더 세밀하게 관리하고 싶다면 --host와 --port를 사용하는 것이 좋다.
데이터들 안을 드려다보게되면 각 document로 데이터를 관리하게된다.
mongoDB는 BSON 형태로 저장하고 JSON의 형태로 출력된다.
다음 내용은 BSON과 JSON이 무엇인지 알아보는 시간이 필요해졌다.