83일차 - MongoDB 공부 시작, Import & Export

김민찬·2021년 7월 31일
0

취업으로의 여정

목록 보기
84/196

주말의 시작인 토요일에는 어제 정리하지 못했던 MongoDB공부를 정리로 시작해야겠다.

전에 공부했던 SQL 기반의 MySQL과 다르게 MongoDB는 NoSQL로 분류되는 크로스 플랫폼 도큐먼트 지향 데이터베이스 시스템이다.
mongo는 humongous(엄청난) 의 줄임말로 수평적인 특징을 가지고 있어서 확장이 쉬운 MongoDB와 잘 어울리는 이름이다.
RDBMS 보다 속도가 훨씬 빠르다는 장점이 있지만, 이는 일관성이 없다는 특징에서 나온 것이다.
그래서 금전적인 것들이 포함되어 있으면 RDBMS를 사용하는 것이 좋다.

또 다른 특징은 저장할때 BSON을 사용한다는 것이다. BSON은 이진법에 기반을 둔 표현법이다.
컴퓨터 언어와 JSON 보다 비슷하니 메모리 사용을 효율적으로 한다.

MySQL과 용어가 약간씩 다라서 MySQL을 공부한 나로써는 용어가 헷갈리는 면이 있었다.

  • Document : 가장 기본적인 데이터 (RDBMS 에서는 row에 해당한다)
  • Collection : Document의 집합이다 (RDBMS 에서는 Table에 해당한다)

Import & Export

MongoDB의 데이터는 BSON 속도가 빠른 저장되고, JSON 사용자가 읽기 쉬운 형태로 출력이된다.
그래서 import와 export는 BSON과 JSON 각각 두 개의 방법이 존재한다.

Export

BSON 형식의 데이터를 내보내는 명령어는 mongodump이다.

mongodump --uri "<connectionUri>"

JSON 형식의 데이터를 내보내는 명령어는 mongoexport이다.

mongoexport --uri "<connectionUri>" --collection=<collectionName> --out=<fileName>.json

JSON 형식의 데이터를 내보낼 때는 컬렉션과 파일명까지 정확하게 명시해야 한다.

Import

BSON 형식의 데이터를 가져오는 명령어는 mongorestore이다.

mongorestore --uri "<connectionUri>" --drop dump

JSON 형식의 데이터를 가져오는 명령어는 mongoimport이다.

mongoimport --uri "<connectionUri>" --drop=<fileName>.json

여기서 기존에 있는 데이터를 삭제하기 위한 옵션인 drop명령어는 선택적으로 사용할 수 있다.

profile
두려움 없이

0개의 댓글