빌더 코드 패턴 사용
개요
이 페이지에서는 코드에서 사용 가능한 다양한 빌더 를 사용하는 방법과 제공된 빌더 를 사용할 때의 이점에 대해 설명합니다.
코틀린 동기 (Kotlin Sync) 운전자 는 개발자가 쿼리 및 애그리게이션을 효율적으로 빌드 활성화 형식 안전 빌더 클래스와 메서드를 제공합니다.
빌더를 사용하는 이유는 무엇입니까?
일반 코틀린 (Kotlin) 만 사용하여 BSON 쿼리 문서를 구성하는 경우 런타임까지 구문 오류를 식별할 수 없습니다. 빌더 는 구문의 정확성을 보장하는 데 도움이 되며 BSON 문서를 구성하는 것보다 덜 장황할 수 있습니다.
예시
이 섹션에서는 users
컬렉션 에서 다음 기준을 충족하는 문서의 email
필드 값을 가져오는 세 가지 동등한 방법을 제공합니다.
gender
값은 다음과 같습니다."female"
age
값이 다음보다 큼29
다음 데이터 클래스는 users
컬렉션 의 문서를 모델링합니다.
data class User( val id: ObjectId, val gender: String, val age: Int, val email: String )
다음 데이터 클래스는 쿼리 에서 반환된 결과를 모델링합니다.
data class Email( val email: String )
MongoDB Query API
다음 샘플 은 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)
빌더
다음 예시 에서는 빌더 헬퍼를 사용하여 쿼리 를 수행합니다.
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)