MongoDB의 JavaScript 셸(mongo shell) 안에서 다른 데이터베이스로 전환하고 싶을 때는 use 명령어 대신 getSiblingDB() 메서드를 사용할 수 있습니다. 이 메서드는 자바스크립트 변수에 데이터베이스 객체를 할당하여, 별도의 컨텍스트 전환 없이 원하는 데이터베이스를 직접 조작할 수 있게 해줍니다.
getSiblingDB() 기본 문법
기본적인 사용 방법은 다음과 같습니다. var 키워드 또는 일반 변수 선언 방식으로 데이터베이스 객체를 저장할 수 있습니다.
anyVariableName = db.getSiblingDB('yourDatabaseName');실제로 데이터베이스 선택해 보기
위 문법을 실제로 적용하여 'sample'이라는 이름의 데이터베이스를 선택해 보겠습니다.
> selectedDatabase = db.getSiblingDB('sample');실행하면 다음과 같은 결과가 출력됩니다.
Sample
이제 selectedDatabase 변수를 통해 'sample' 데이터베이스에 바로 접근할 수 있습니다.
선택한 데이터베이스에 문서(Document) 삽입하기
데이터베이스가 정상적으로 선택되었는지 확인하기 위해 문서를 삽입해 보겠습니다. 여기서는 'selectDatabaseDemo'라는 컬렉션을 사용합니다.
> db.selectDatabaseDemo.insertOne({"ClientName":"John Smith","ClientAge":23});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cda794b5667f1cce01d55ad")
}
> db.selectDatabaseDemo.insertOne({"ClientName":"Carol Taylor","ClientAge":24});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cda79565667f1cce01d55ae")
}두 개의 클라이언트 정보가 담긴 문서가 성공적으로 삽입되었습니다. 각 문서에는 고유한 ObjectId가 자동으로 부여됩니다.
find() 메서드로 삽입된 문서 조회하기
컬렉션에 저장된 모든 문서를 확인하려면 find() 메서드를 사용합니다. pretty()를 함께 호출하면 결과를 보기 좋게 정렬된 형태로 출력할 수 있습니다.
db.selectDatabaseDemo.find().pretty();
실행 결과는 다음과 같습니다.
{
"_id" : ObjectId("5cda794b5667f1cce01d55ad"),
"ClientName" : "John Smith",
"ClientAge" : 23
}
{
"_id" : ObjectId("5cda79565667f1cce01d55ae"),
"ClientName" : "Carol Taylor",
"ClientAge" : 24
}정리
MongoDB JS 셸에서 getSiblingDB() 메서드를 활용하면 현재 작업 중인 데이터베이스를 벗어나지 않고도 다른 데이터베이스를 손쉽게 선택하고 조작할 수 있습니다. 스크립트 기반의 자동화 작업이나 여러 데이터베이스를 동시에 다뤄야 하는 상황에서 특히 유용한 기능이니, 위 예제를 직접 따라 해보며 익혀보시기 바랍니다.