Node.js & MongoDB

데이터베이스 관리

데이터베이스 목록 출력

시스템 내의 데이터베이스 목록을 확인하려면 다음과 같이 한다.

show dbs

사용중인 데이터베이스 변경

다음은 현재 데이터베이스 핸들을 testDB로 변경한다.

db = db.getSiblingDB('testDB')
use testDB

데이터베이스 생성

새로운 데이터베이스 핸들을 생성하려면, 간단히 use <new_database_name>를 사용한다. 하지만 새로운 데이터베이스에 컬렉션을 추가하기 전까지는 데이터베이스가 저장되지 않는다.

다음 명령은 newDB라는 새로운 데이터베이스를 생성한 다음 newCollection이라는 컬렉션을 추가한다.

use newDB
db.createCollection("newCollection")

데이터베이스 삭제

몽고DB 셸에서 데이터베이스를 삭제하려면 dropDatabase() 메소드를 사용한다.

예를 들어, newDB 데이터베이스를 삭제하려면, newDB 데이터베이스로 변경한 다음 삭제할 수 있도록 다음 명령을 사용한다.

use newDB
db.dropDatabase()

dropDatabase()는 현재 데이터베이스를 삭제하지만 현재 데이터베이스 핸들을 변경하지는 않는다. 즉, 데이터베이스를 삭제한 다음 현재 데이터베이스를 변경하지 않고 핸들을 사용해서 컬렉션을 생성한다면, 삭제된 데이터베이스가 재생성된다.

데이터베이스 복사

데이터베이스 복사는 데이터베이스의 이름을 제외한 모든 것이 완전히 동일한 사본을 생성한다. 데이터베이스 복사본을 생성하려면, 해당 데이터베이스로 전환한 후 복사본을 생성하기 위해 copyDatabase(origin, destination, [hostname])를 사용한다. origin 파라미터는 복사할 데이터베이스의 이름을 명시할 문자열이다. destination 파라미터는 몽고DB 서버에 생성할 데이터베이스의 이름을 명시한다. 선택사항인 hostname 파라미터는 다른 호스트로부터 데이터베이스를 복사하는 경우 복사할 origin 데이터베이스 몽고DB 서버의 호스트명을 명시한다.

db.copyDatabase('customers', 'customers_archive');