Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

Contents

MongoDB 데이터베이스 Import & Export

몽고디비는 가장 인기 있는 NoSQL 데이터베이스 중 하나다. 여기에서는 몽고디비에 있는 데이터베이스를 import, export 하는 방법을 살펴보려한다. import는 파일드으이 형태로 외부에 있는 데이터를 몽고디비에 적재하기 위해서, export는 몽고디비에 있는 데이터를 파일의 형태로 출력하기 위해서 사용한다.

일반적으로 Import와 Export는 다른 제품에 있는 데이터를 몽고디비로 적재하는 등의 작업에 사용한다. 비록 이 둘울 백업과 복구용도로 사용 할 수 있기는 하지만 좋은 방법은 아니다. 백업및 복구 작업은 데이터의 일관성과 무결성뿐만 아니라 몽고디비의 데이터베이스 특징들을 유지하며, 바이너리 데이터를 사용한다. 데이터 백업과 복구에 대한 내용은 따로 다루겠다.

테스트 환경

도커로 테스트 환경을 만들었다.
$ docker run --name mymongo -d mongo
Unable to find image 'mongo:latest' locally
....
$ docker exec -it mymongo /bin/bash
root@f62725e90440:/# 

Import

외부에 있는 json 데이터를 몽고디비 데이터베이스에 임포트해보자. primer-dataset.json을 임포트하기로 했다. 이 파일에는 음식점의 위치와 평가 정보들이 들어 있다.
{
   "name" : "Morris Park Bake Shop",
   "cuisine" : "Bakery",
   "restaurant_id" : "30075445",
   "borough" : "Bronx",
   "address" : {
      "street" : "Morris Park Ave",
      "coord" : [
         -73.856077,
         40.848447
      ],
      "zipcode" : "10462",
      "building" : "1007"
   },
   "grades" : [
      {
         "date" : {
            "$date" : 1393804800000
         },
         "score" : 2,
         "grade" : "A"
      },
      {
         "score" : 6,
         "grade" : "A",
         "date" : {
            "$date" : 1378857600000
         }
      },
      {
         "score" : 10,
         "grade" : "A",
         "date" : {
            "$date" : 1358985600000
         }
      },
      {
         "date" : {
            "$date" : 1322006400000
         },
         "score" : 9,
         "grade" : "A"
      },
      {
         "score" : 14,
         "grade" : "B",
         "date" : {
            "$date" : 1299715200000
         }
      }
   ]
}
mongoimport 명령으로 파일을 임포트 할 수 있다.
$ mongoimport --db test --collection restaurants --file primer-dataset.json
2017-07-14T16:33:38.150+0000	connected to: localhost
2017-07-14T16:33:38.666+0000	imported 25359 documents
원격 호스트에 임포트 하고 있다면 hostport옵션을 설정하면 된다.

Export

mongoexport 명령으로 몽고디비의 데이터를 파일로 export 할 수 있다.
$ mongoexport --db test --collection restaurants > rastaurants.json
2017-07-14T16:36:12.259+0000	connected to: localhost
2017-07-14T16:36:13.259+0000	[###############.........]  test.restaurants  16000/25359  (63.1%)
2017-07-14T16:36:13.593+0000	[########################]  test.restaurants  25359/25359  (100.0%)
2017-07-14T16:36:13.594+0000	exported 25359 records