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

MongoDB에서 배열 요소로 특정 문서 조회하는 방법 (dot notation 활용)

MongoDB 배열 요소로 특정 문서 가져오기

MongoDB에서 배열 안에 포함된 문서(내장 문서) 중 특정 조건에 맞는 데이터를 조회하려면 점 표기법(dot notation)을 find() 메서드와 함께 사용하면 됩니다. 이 방법은 배열 내부의 필드에 직접 접근할 수 있어 매우 유용합니다.

먼저 예제로 사용할 컬렉션을 생성하고 문서를 삽입해 보겠습니다.

> db.demo672.insertOne({Brand:[{CategoryName:"Mobile",Name:"Oppo"}]});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5ea3ea9b04263e90dac943e5")
}
> db.demo672.insertOne({Brand:[{CategoryName:"Mobile",Name:"Samsung"}]});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5ea3eaa404263e90dac943e6")
}
> db.demo672.insertOne({Brand:[{CategoryName:"Mobile",Name:"OnePlus"}]});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5ea3eacc04263e90dac943e7")
}

컬렉션의 전체 문서 확인하기

find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 확인할 수 있습니다.

> db.demo672.find();

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

{ "_id" : ObjectId("5ea3ea9b04263e90dac943e5"), "Brand" : [ { "CategoryName" : "Mobile", "Name" : "Oppo" } ] }
{ "_id" : ObjectId("5ea3eaa404263e90dac943e6"), "Brand" : [ { "CategoryName" : "Mobile", "Name" : "Samsung" } ] }
{ "_id" : ObjectId("5ea3eacc04263e90dac943e7"), "Brand" : [ { "CategoryName" : "Mobile", "Name" : "OnePlus" } ] }

dot notation으로 특정 문서 조회하기

이제 점 표기법을 사용하여 Brand 배열 내부의 Name 필드 값이 "OnePlus"인 문서만 조회해 보겠습니다.

> db.demo672.find({"Brand.Name":"OnePlus"});

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

{ "_id" : ObjectId("5ea3eacc04263e90dac943e7"), "Brand" : [ { "CategoryName" : "Mobile", "Name" : "OnePlus" } ] }

이처럼 "Brand.Name" 형태의 점 표기법을 사용하면 MongoDB가 자동으로 배열 내부의 각 내장 문서를 순회하며 조건에 일치하는 문서만 반환합니다. 배열 요소를 대상으로 한 정밀한 검색이 필요할 때 가장 널리 쓰이는 기본적인 방법입니다.