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

MongoDB에서 내장 문서(해시) 내부 값을 조회하는 방법 – 점(.) 표기법 완벽 가이드

MongoDB에서 내장 문서 내부를 검색하는 방법

MongoDB에서 문서 안에 중첩된 객체(해시)의 내부 필드를 조회하려면 점(.) 표기법(dot notation)을 사용하면 됩니다. 점 표기법은 상위 필드 이름과 하위 필드 이름을 마침표로 연결하여 중첩된 데이터에 접근하는 방식입니다.

이번 글에서는 실제 예제를 통해 컬렉션 생성부터 내장 문서 내부 값 검색까지 단계별로 살펴보겠습니다.

1단계: 샘플 데이터가 있는 컬렉션 생성

먼저 insertOne() 메서드를 사용하여 문서가 포함된 컬렉션을 생성합니다.

> db.hashDemo.insertOne({"ClientName":"Larry","ClientAge":23,"ClientDetails":{ "isEducated": true, "ClientProject" : "University Management"}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ca1ef1266324ffac2a7dc5e")
}
> db.hashDemo.insertOne({"ClientName":"Chris","ClientAge":26,"ClientDetails":{ "isEducated":false, "ClientProject" : "Online Book Store"}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ca1ef7766324ffac2a7dc5f")
}

위 명령어는 hashDemo라는 컬렉션에 두 개의 클라이언트 문서를 삽입합니다. 각 문서는 ClientDetails라는 내장 문서를 포함하고 있으며, 그 안에 isEducatedClientProject 필드가 존재합니다.

2단계: find() 메서드로 전체 문서 확인

find() 메서드를 사용하면 컬렉션의 모든 문서를 조회할 수 있습니다. pretty()를 함께 사용하면 결과를 보기 좋게 정렬해서 출력합니다.

> db.hashDemo.find().pretty();

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

{
   "_id" : ObjectId("5ca1ef1266324ffac2a7dc5e"),
   "ClientName" : "Larry",
   "ClientAge" : 23,
   "ClientDetails" : {
      "isEducated" : true,
      "ClientProject" : "University Management"
   }
}
{
   "_id" : ObjectId("5ca1ef7766324ffac2a7dc5f"),
   "ClientName" : "Chris",
   "ClientAge" : 26,
   "ClientDetails" : {
      "isEducated" : false,
      "ClientProject" : "Online Book Store"
   }
}

3단계: 점 표기법으로 내장 문서 내부 값 검색

이제 핵심인 내장 문서 내부 검색입니다. 상위 필드와 하위 필드를 마침표로 연결한 "ClientDetails.isEducated" 형태의 조건을 사용하면 됩니다.

> db.hashDemo.find({"ClientDetails.isEducated" : false, "ClientDetails.ClientProject" : "Online Book Store"}).pretty();

위 쿼리는 isEducatedfalse이면서 ClientProject가 "Online Book Store"인 문서만 찾습니다. 실행 결과는 다음과 같습니다.

{
   "_id" : ObjectId("5ca1ef7766324ffac2a7dc5f"),
   "ClientName" : "Chris",
   "ClientAge" : 26,
   "ClientDetails" : {
      "isEducated" : false,
      "ClientProject" : "Online Book Store"
   }
}

정리

MongoDB에서 중첩된 문서(해시) 내부의 특정 값을 조회할 때는 반드시 점 표기법을 사용해야 합니다. 조건을 큰따옴표로 감싸 "상위필드.하위필드" 형태로 작성하는 것이 핵심이며, 여러 조건을 동시에 지정하면 AND 조건으로 처리됩니다. 이 방식을 익히면 복잡하게 중첩된 데이터 구조에서도 원하는 문서를 정확하고 빠르게 검색할 수 있습니다.