MongoDB에서 이름에 공백이 있는 키 조회하기
MongoDB에서 필드 이름에 공백이 포함된 키를 쿼리하려면 점(.) 표기법을 사용하면 됩니다. 키 이름에 공백이 있어도 점 표기법과 따옴표를 조합하면 별도의 처리 없이 간단하게 데이터를 조회할 수 있습니다.
아래에서 단계별로 살펴보겠습니다.
1단계: 이름에 공백이 포함된 키를 가진 객체 생성
먼저 키 이름에 공백이 들어간 객체를 생성합니다. 다음 쿼리를 실행해 보세요.
> myValues["Details"] = {}
{ }
> myValues["Details"]["Student Name"]="John";
John
> myValues["Details"]["StudentAge"]=26;
26위 코드에서는 "Details"라는 하위 문서를 만들고, 그 안에 공백이 포함된 키인 "Student Name"과 일반적인 키인 "StudentAge"를 함께 정의했습니다.
2단계: 컬렉션 생성 후 문서 저장
이제 새로운 컬렉션을 만들고 앞서 생성한 객체를 하나의 문서로 저장합니다. 다음 쿼리를 사용하세요.
> db.keyHavingSpaceDemo.insertOne( myValues);
{
"acknowledged" : true,
"insertedId" : ObjectId("5ca27e3b6304881c5ce84ba4")
}
insertOne() 메서드가 성공적으로 실행되면 위와 같이 acknowledged 값이 true로 반환되며, 자동으로 생성된 ObjectId도 확인할 수 있습니다.
저장된 문서 확인하기
find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 조회할 수 있습니다.
> db.keyHavingSpaceDemo.find().pretty();
실행 결과는 다음과 같습니다.
{
"_id" : ObjectId("5ca27e3b6304881c5ce84ba4"),
"Details" : {
"Student Name" : "John",
"StudentAge" : 26
}
}공백이 있는 키 쿼리하기
이제 핵심 단계입니다. 공백이 포함된 키 "Student Name"을 쿼리하려면 아래와 같이 점 표기법과 함께 전체 경로를 큰따옴표로 감싸주면 됩니다.
> db.keyHavingSpaceDemo.find({ "Details.Student Name": "John"} ).pretty();쿼리 실행 결과는 다음과 같습니다.
{
"_id" : ObjectId("5ca27e3b6304881c5ce84ba4"),
"Details" : {
"Student Name" : "John",
"StudentAge" : 26
}
}정리
MongoDB에서 이름에 공백이 있는 키를 쿼리하는 방법을 정리하면 다음과 같습니다.
- 중첩된 필드에 접근할 때는 점(.) 표기법을 사용합니다.
- 필드 경로 전체를 큰따옴표(")로 묶어야 공백이 포함된 키도 정상적으로 인식됩니다.
- 예시: { "Details.Student Name": "John" }
이처럼 MongoDB는 키 이름에 공백이 있어도 점 표기법과 따옴표만 올바르게 사용하면 아무런 문제 없이 데이터를 조회할 수 있습니다. 다만 스키마 설계 시에는 가능한 한 공백 없는 필드명이나 카멜케이스(camelCase)를 사용하는 것이 유지보수 측면에서 더 권장됩니다.