Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB 콘솔에서 customer_tracker-990처럼 특수 문자가 포함된 데이터베이스 이름 사용하기

MongoDB에서 데이터베이스 이름에 하이픈(-)과 같은 특수 문자가 포함되어 있으면 use 명령만으로는 해당 데이터베이스를 제대로 다루기 어렵습니다. 이런 경우 getSiblingDB() 메서드를 사용하면 문제를 간단히 해결할 수 있습니다.

1. 특수 문자가 있는 데이터베이스 생성 및 문서 삽입

use customer_tracker-990 명령으로 데이터베이스를 전환한 뒤, insertOne() 메서드를 사용해 문서를 추가해 보겠습니다.

> use customer_tracker-990;
switched to db customer_tracker-990
> db.demo1.insertOne({"Name":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea4697ca7e81adc6a0b3954")
}
> db.demo1.insertOne({"Name":"David"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea46980a7e81adc6a0b3955")
}
> db.demo1.insertOne({"Name":"Bob"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea46984a7e81adc6a0b3956")
}

위 실행 결과를 보면 세 개의 문서가 모두 성공적으로 삽입되었으며, 각 문서에는 고유한 ObjectId가 자동으로 부여됩니다.

2. getSiblingDB()로 데이터 조회하기

특수 문자가 포함된 데이터베이스의 컬렉션에서 문서를 조회하려면 find() 메서드와 함께 getSiblingDB()를 사용합니다.

> db.getSiblingDB("customer_tracker-990").demo1.find();

이 명령을 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

{ "_id" : ObjectId("5ea4697ca7e81adc6a0b3954"), "Name" : "Chris" }
{ "_id" : ObjectId("5ea46980a7e81adc6a0b3955"), "Name" : "David" }
{ "_id" : ObjectId("5ea46984a7e81adc6a0b3956"), "Name" : "Bob" }

정리

데이터베이스 이름에 하이픈 같은 특수 문자가 들어 있을 때는 db.getSiblingDB("데이터베이스명") 형태로 접근하는 것이 가장 안전하고 확실한 방법입니다. 이 방식은 셸 환경에서 특수 문자로 인한 파싱 오류 없이 데이터베이스와 컬렉션에 직접 접근할 수 있게 해줍니다.