개요
이 페이지에서는 코드에서 사용 가능한 다양한 빌더 를 사용하는 방법과 제공된 빌더 를 사용할 때의 이점에 대해 설명합니다.
코틀린 동기 (Kotlin Sync) 운전자 는 개발자가 쿼리 및 애그리게이션을 효율적으로 빌드 활성화 형식 안전 빌더 클래스와 메서드를 제공합니다.
사용 가능한 빌더 클래스 및 메서드에 대해 자세히 학습 다음 API 문서 섹션을 참조하세요.
참고
입력 유효성 검사
빌더 클래스는 입력 값을 기본 MongoDB 작업에 전달하며 해당 값을 삭제하지 않습니다. 빌더 메서드에 전달하기 전에 애플리케이션 에서 입력한 내용의 유효성을 검사하세요.
빌더를 사용하는 이유는 무엇입니까?
일반 코틀린 (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) 상호 운용성을 개선하는 데 도움이 될 수 있습니다.