Docs Menu

빌더 코드 패턴 사용

이 페이지에서는 코드에서 사용 가능한 다양한 빌더 를 사용하는 방법과 제공된 빌더 를 사용할 때의 이점에 대해 설명합니다.

코틀린 동기 (Kotlin Sync) 운전자 는 개발자가 쿼리 및 애그리게이션을 효율적으로 빌드 활성화 형식 안전 빌더 클래스와 메서드를 제공합니다.

사용 가능한 빌더 클래스 및 메서드에 대해 자세히 학습 다음 API 문서 섹션을 참조하세요.

일반 코틀린 (Kotlin) 만 사용하여 BSON 쿼리 문서를 구성하는 경우 런타임까지 구문 오류를 식별할 수 없습니다. 빌더 는 구문의 정확성을 보장하는 데 도움이 되며 BSON 문서를 구성하는 것보다 덜 장황할 수 있습니다.

이 섹션에서는 users 컬렉션 에서 다음 기준을 충족하는 문서의 email 필드 값을 가져오는 세 가지 동등한 방법을 제공합니다.

  • gender 값은 "female"입니다.

  • age 값이 29보다 큼

다음 데이터 클래스는 users 컬렉션 의 문서를 모델링합니다.

data class User(
@BsonId val id: ObjectId,
val gender: String,
val age: Int,
val email: String
)

다음 데이터 클래스는 쿼리 에서 반환된 결과를 모델링합니다.

data class Email(
val email: String
)

다음 샘플 은 MongoDB 쿼리 API 를 사용하여 쿼리 를 수행합니다.

collection.find(
{ "gender": "female", "age" : { "$gt": 29 }},
{ "_id": 0, "email": 1 }
)

다음 예시 에서는 Document 클래스를 사용하여 쿼리 필터하다 를 구성하여 쿼리 를 수행합니다.

val filter = Document("gender", "female").append("age", Document("\$gt", 29))
val projection = Document("_id", 0).append("email", 1)
val results = collection.find<Email>(filter).projection(projection)

이 경우 필터하다 에 "\$gt" 연산자 작성할 때 오류를 쉽게 포함할 수 있지만 IDE는 런타임에만 관련 오류를 반환합니다.

다음 예시 에서는 빌더 헬퍼를 사용하여 쿼리 를 수행합니다.

val filter = Filters.and(
Filters.eq(User::gender.name, "female"),
Filters.gt(User::age.name, 29)
)
val projection = Projections.fields(
Projections.excludeId(),
Projections.include("email")
)
val results = collection.find<Email>(filter).projection(projection)

데이터 클래스와 함께 빌더 사용 가이드 앞의 빌더 클래스를 데이터 클래스 속성과 함께 직접 사용하는 방법에 대한 예제를 제공합니다. 이 가이드 애플리케이션 더 유형 안전하게 만들고 코틀린 (Kotlin) 상호 운용성을 개선하는 데 도움이 될 수 있습니다.