MongoDB에서 언더스코어(_)나 하이픈(-)과 같은 특수 문자가 포함된 컬렉션을 삭제하려면 db.getCollection() 메서드를 사용해야 합니다. 일반적인 db.컬렉션명.drop() 문법으로는 특수 문자가 포함된 컬렉션에 접근할 수 없기 때문입니다.
특수 문자 컬렉션 삭제 문법
다음과 같은 문법을 사용하면 특수 문자가 포함된 컬렉션을 삭제할 수 있습니다.
db.getCollection("yourCollectionName").drop();예제: 컬렉션 생성 및 문서 삽입
개념을 이해하기 위해 특수 문자가 포함된 컬렉션을 생성하고 문서를 삽입해 보겠습니다. 먼저 컬렉션을 생성하는 쿼리는 다음과 같습니다.
> db.createCollection("_personalInformation");
{ "ok" : 1 }이제 insertOne() 메서드를 사용해 문서를 삽입합니다.
> db.getCollection('_personalInformation').insertOne({"ClientName":"Chris","ClientCountryName":"US"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9158bb4afe5c1d2279d6b2")
}
> db.getCollection('_personalInformation').insertOne({"ClientName":"Mike","ClientCountryName":"UK"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9158c84afe5c1d2279d6b3")
}
> db.getCollection('_personalInformation').insertOne({"ClientName":"David","ClientCountryName":"AUS"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9158d54afe5c1d2279d6b4")
}저장된 문서 조회하기
find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 확인할 수 있습니다.
> db.getCollection('_personalInformation').find().pretty();위 쿼리의 실행 결과는 다음과 같습니다.
{
"_id" : ObjectId("5c9158bb4afe5c1d2279d6b2"),
"ClientName" : "Chris",
"ClientCountryName" : "US"
}
{
"_id" : ObjectId("5c9158c84afe5c1d2279d6b3"),
"ClientName" : "Mike",
"ClientCountryName" : "UK"
}
{
"_id" : ObjectId("5c9158d54afe5c1d2279d6b4"),
"ClientName" : "David",
"ClientCountryName" : "AUS"
}특수 문자가 포함된 컬렉션 삭제하기
이제 특수 문자가 포함된 MongoDB 컬렉션을 삭제하는 쿼리를 실행해 보겠습니다.
> db.getCollection("_personalInformation").drop();실행 결과는 다음과 같습니다.
True
결과가 True로 반환되면 해당 컬렉션이 MongoDB에서 완전히 삭제되었음을 의미합니다. 만약 존재하지 않는 컬렉션을 삭제하려고 하면 False가 반환됩니다.
정리
특수 문자가 포함된 컬렉션을 다룰 때는 점 표기법(db.컬렉션명) 대신 db.getCollection("컬렉션명") 형태로 접근해야 합니다. 이 방법은 언더스코어, 하이픈뿐만 아니라 공백이나 기타 특수 문자가 포함된 컬렉션에도 동일하게 적용할 수 있습니다.