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

MongoDB 쿼리에서 점 표기법(Dot Notation)으로 필드 선택하는 방법

MongoDB에서 점 표기법으로 필드 선택하기

MongoDB의 find() 메서드에서는 점 표기법(dot notation)을 사용하여 문서 내부의 특정 필드나 배열 요소의 하위 필드를 손쉽게 선택하거나 제외할 수 있습니다. 이번 글에서는 실제 예제를 통해 그 사용 방법을 단계별로 살펴보겠습니다.

1단계: 샘플 컬렉션 생성

먼저 문서가 포함된 컬렉션을 생성합니다.

> db.demo302.insertOne({"Id":101,"details":[{"Name":"Chris",Age:21,"Subject":"MySQL"}]});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e4d746f5d93261e4bc9ea52")
}
> db.demo302.insertOne({"Id":102,"details":[{"Name":"Bob",Age:23,"Subject":"MongoDB"}]});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e4d74815d93261e4bc9ea53")
}
> db.demo302.insertOne({"Id":103,"details":[{"Name":"David",Age:20,"Subject":"Java"}]});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e4d74955d93261e4bc9ea54")
}

2단계: 컬렉션의 모든 문서 조회

find() 메서드를 사용하여 컬렉션에 저장된 모든 문서를 확인합니다.

> db.demo302.find();

위 명령은 다음과 같은 결과를 출력합니다.

{ "_id" : ObjectId("5e4d746f5d93261e4bc9ea52"), "Id" : 101, "details" : [ { "Name" : "Chris", "Age" : 21, "Subject" : "MySQL" } ] }
{ "_id" : ObjectId("5e4d74815d93261e4bc9ea53"), "Id" : 102, "details" : [ { "Name" : "Bob", "Age" : 23, "Subject" : "MongoDB" } ] }
{ "_id" : ObjectId("5e4d74955d93261e4bc9ea54"), "Id" : 103, "details" : [ { "Name" : "David", "Age" : 20, "Subject" : "Java" } ] }

3단계: 점 표기법으로 필드 선택

이제 점 표기법을 사용하여 원하는 필드만 선택하는 쿼리를 작성해 보겠습니다. 아래 쿼리는 details.Subject 값이 "MongoDB"인 문서를 찾고, 프로젝션 부분에서 Name, Age, _id, Id 필드를 제외(0) 처리합니다.

>db.demo302.find({"details.Subject":"MongoDB"},{"details.Name":0,"details.Age":0,_id:0,Id:0});

실행 결과는 다음과 같습니다.

{ "details" : [ { "Subject" : "MongoDB" } ] }

정리

이처럼 점 표기법을 활용하면 중첩된 문서 구조나 배열 안의 하위 필드에 직접 접근하여 조건을 지정하고, 프로젝션을 통해 필요한 데이터만 깔끔하게 추출할 수 있습니다. 이는 대량의 데이터에서 불필요한 필드를 걸러내고 쿼리 성능과 가독성을 높이는 데 매우 유용한 기법입니다.