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

MongoDB에서 고유한(distinct) 값만 가져오는 쿼리 방법

MongoDB에서 고유한 값 가져오기

MongoDB에서 특정 필드의 고유한(distinct) 값만 추출하려면 distinct() 메서드를 사용하면 됩니다. 이 메서드는 단일 컬렉션 또는 뷰 전체에서 지정된 필드의 중복 없는 값들을 찾아 배열(Array) 형태로 반환합니다.

1. 샘플 데이터 생성하기

먼저 문서가 담긴 컬렉션을 생성해 보겠습니다.

> db.demo287.insertOne({"details":{"AllVowels":["a","u","u","o","e","a","o","i"]}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e4c014cf49383b52759cbbd")
}

2. 저장된 문서 확인하기

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

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

위 명령을 실행하면 다음과 같은 결과가 출력됩니다.

{
   "_id" : ObjectId("5e4c014cf49383b52759cbbd"),
   "details" : {
      "AllVowels" : [ "a", "u", "u", "o", "e", "a", "o", "i" ]
   }
}

3. distinct()로 고유한 값 조회하기

다음은 details.AllVowels 필드에서 고유한 값만 가져오는 쿼리입니다.

> db.demo287.distinct("details.AllVowels");

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

[ "a", "e", "i", "o", "u" ]

원본 배열에는 중복된 모음(a, u, o)이 여러 개 포함되어 있었지만, distinct() 메서드는 배열 요소를 자동으로 펼쳐서(flatten) 처리한 뒤 중복을 제거하고 정렬된 결과를 반환합니다. 이처럼 distinct()는 배열 필드뿐 아니라 일반 필드에서도 손쉽게 유니크한 값 목록을 얻을 수 있는 유용한 도구입니다.