프로젝션
프로젝션 클래스는 MongoDB 프로젝션 연산자 를 위한 정적 팩토리 메서드를 제공합니다. 각 메서드는 Bson
유형의 인스턴스를 반환하며, 이 인스턴스는 프로젝션을 예상하는 모든 메서드에 차례로 전달될 수 있습니다.
다음 코드와 같이 Projections
클래스의 메서드를 정적으로 가져올 수 있습니다.
import org.mongodb.scala.model.Projections._
이 가이드의 예제에서는 이러한 정적 가져오기를 가정합니다.
포함
기본적으로 각 문서의 모든 필드가 결과에 포함됩니다. _id
제외한 다른 모든 필드를 암시적으로 제외하는 하나 이상의 필드를 포함하도록 지정하려면 include()
메서드를 사용합니다.
다음 예제에는 quantity
필드와 암시적으로 _id
필드가 포함되어 있습니다.
include("quantity")
다음 예제에는 quantity
및 totalAmount
필드와 암시적으로 _id
필드가 포함됩니다.
include("quantity", "totalAmount")
Exclusion
다른 모든 필드를 암시적으로 포함하는 하나 이상의 필드 제외를 지정하려면 exclude()
메서드를 사용합니다.
다음 예시에서는 quantity
필드를 제외합니다:
include("수량")
다음 예시에서는 quantity
및 totalAmount
필드를 제외합니다.
exclude("quantity", "totalAmount")
_id 필드 제외
_id
필드 제외를 지정하려면 excludeId()
메서드를 사용합니다.
excludeId()
이는 다음 코드와 동일합니다.
exclude("_id")
지정된 필터와 배열 요소 일치
제공된 쿼리 필터와 일치하는 배열의 첫 번째 요소만 포함하는 프로젝션을 지정하려면 필드 이름과 필터를 사용하는 elemMatch()
메서드를 사용합니다.
다음 예제에서는 quantity
필드가 3
보다 큰 orders
배열 필드의 첫 번째 요소를 프로젝션합니다.
elemMatch("orders", Filters.gt("quantity", 3))
암시적 필터를 사용한 배열 요소 일치
쿼리의 일부로 제공된 필터와 일치하는 배열의 첫 번째 요소만 포함하는 프로젝션을 지정하려면 필드 이름만 사용하는 elemMatch()
메서드를 사용합니다.
다음 예시에서는 쿼리 필터와 일치하는 orders
배열의 첫 번째 요소를 프로젝션합니다.
elemMatch("orders")
슬라이스
배열의 슬라이스를 프로젝션하려면 slice()
메서드 중 하나를 사용합니다.
다음 예제에서는 tags
배열의 첫 번째 7
요소를 프로젝션합니다.
slice("tags", 7)
다음 예제에서는 tags
배열의 처음 2
요소를 건너뛰고 다음 5
를 프로젝션합니다.
slice("tags", 2, 5)
텍스트 점수
$text
쿼리 점수의 프로젝션을 지정하려면 metaTextScore()
메서드를 사용하여 프로젝션된 필드의 이름을 지정합니다.
다음 예시에서는 텍스트 점수를 score
필드의 값으로 투영합니다.
metaTextScore("score")
프로젝션 결합
여러 프로젝션을 결합하려면 필드 메서드를 사용합니다.
다음 예시에는 quantity
및 totalAmount
필드가 포함되어 있으며 _id
필드는 제외됩니다:
fields(include("quantity", "totalAmount"), excludeId())