빌더 코드 패턴 사용
개요
이 페이지에서는 코드에서 사용 가능한 다양한 빌더 를 사용하는 방법과 제공된 빌더 를 사용할 때의 이점에 대해 설명합니다.
코틀린 동기 (Kotlin Sync) 운전자 는 개발자가 쿼리 및 애그리게이션을 효율적으로 빌드 활성화 형식 안전 빌더 클래스와 메서드를 제공합니다.
사용 가능한 빌더 클래스 및 메서드에 대해 자세히 학습 다음 API 문서 섹션을 참조하세요.
빌더를 사용하는 이유는 무엇입니까?
일반 코틀린 (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)
이 경우 필터하다 에 "\$gt"
연산자 작성할 때 오류를 쉽게 포함할 수 있지만 IDE는 런타임에만 관련 오류를 반환합니다.
빌더 API
다음 예시 에서는 빌더 헬퍼를 사용하여 쿼리 를 수행합니다.
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) 상호 운용성을 개선하는 데 도움이 될 수 있습니다.