MongoDB에서는 컬렉션 이름에 문자와 숫자가 혼합되어 있어도 문제없이 사용할 수 있습니다. 다만 일반적인 db.컬렉션이름 형식의 점 표기법(dot notation)으로는 접근하기 어려우므로, db.getCollection() 메서드를 활용해야 합니다.
1. 문자와 숫자가 섞인 컬렉션 생성하기
먼저 아래와 같은 이름을 가진 컬렉션을 생성해 보겠습니다.
7664734-541d-r5i5f-845575e-ghfhjrjr3747_demo368
2. db.createCollection()으로 컬렉션 만들기
db.createCollection() 메서드를 사용하여 위 이름의 컬렉션을 생성합니다.
> db.createCollection('7664734-541d-r5i5f-845575e-ghfhjrjr3747_demo368');
{ "ok" : 1 }{ "ok" : 1 }이 출력되면 컬렉션이 정상적으로 생성된 것입니다.
3. db.getCollection()으로 문서 삽입하기
컬렉션 이름에 하이픈(-)과 특수 문자가 포함되어 있으므로, db.getCollection()을 사용해 접근한 뒤 insertOne()으로 문서를 삽입합니다.
> db.getCollection('7664734-541d-r5i5f-845575e-ghfhjrjr3747_demo368').insertOne({"FirstName":"Chris"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e57e2152ae06a1609a00aea")
}
> db.getCollection('7664734-541d-r5i5f-845575e-ghfhjrjr3747_demo368').insertOne({"FirstName":"David"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e57e21a2ae06a1609a00aeb")
}
> db.getCollection('7664734-541d-r5i5f-845575e-ghfhjrjr3747_demo368').insertOne({"FirstName":"Bob"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e57e21e2ae06a1609a00aec")
}세 개의 문서가 모두 성공적으로 삽입되었습니다.
4. find() 메서드로 전체 레코드 조회하기
find() 메서드를 사용하면 해당 컬렉션의 모든 문서를 확인할 수 있습니다.
> db.getCollection('7664734-541d-r5i5f-845575e-ghfhjrjr3747_demo368').find();위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
{ "_id" : ObjectId("5e57e2152ae06a1609a00aea"), "FirstName" : "Chris" }
{ "_id" : ObjectId("5e57e21a2ae06a1609a00aeb"), "FirstName" : "David" }
{ "_id" : ObjectId("5e57e21e2ae06a1609a00aec"), "FirstName" : "Bob" }정리
컬렉션 이름에 숫자, 하이픈 등 특수 문자가 포함된 경우에는 점 표기법 대신 반드시 db.getCollection('컬렉션이름') 방식으로 접근해야 합니다. 이 방법만 기억하면 어떤 형식의 컬렉션 이름이라도 자유롭게 생성하고 데이터를 조회할 수 있습니다.