이 튜토리얼은 필드를 문자열로 변환하고 이를 구체화된 뷰에 저장하여 문자열이 아닌 필드에 대해 문자열별 쿼리를 실행하는 방법을 보여줍니다. 구체화된 뷰를 사용하면 문자열 전용 연산자를 사용하여 변환된 필드를 쿼리하고 원본 데이터를 소스 컬렉션에 그대로 유지할 수 있습니다.
이 튜토리얼에서는 다음 단계를 안내합니다:
시작하기 전에 Atlas 클러스터가 필수 구성 요소에 설명된 요건을 충족하는지 확인하세요.
구체화된 뷰 만들기
이 섹션에서는 airbnb-mat-view
sample_airbnb.listingsAndReviews 에서 라는 구체화된 뷰 를 생성하는 방법을 보여줍니다. 컬렉션. 이 뷰는 소스 컬렉션 의 다양한 숫자 및 날짜 필드를 문자열 필드로 저장합니다.
구체화된 뷰에서 MongoDB Search 인덱스 생성
이 튜토리얼의 변환된 필드에서 쿼리 실행 단계에서 쿼리를 실행 하려면 구체화된 뷰에서 변환된 문자열 필드에 MongoDB Search 인덱스를 생성해야 airbnb_mat_view
합니다.
다음 JSON 정의는 구체화된 뷰에서 MongoDB Search 인덱스를 airbnb_mat_view
정의합니다. 실행 하려는 쿼리 유형에 따라 동적 또는 정적 매핑을 사용하여 컬렉션 에서 인덱스 할 필드를 지정할 수 있습니다. 필드 매핑 또는 MongoDB Search 인덱스 구문에 대해 자세히 학습 각각 필드 매핑 정의 또는 인덱스 참조를 참조하세요.
다음 JSON MongoDB Search 인덱스 정의는 동적 매핑을 사용하여 구체화된 뷰의 필드를 인덱스 . 이 인덱스 사용하여 queryString 연산자 사용하여 쿼리를 실행 수 있습니다.
동적으로 인덱싱된 필드에 대해서는 자동 완성 연산자 사용하여 쿼리를 실행 수 없습니다.
{ "mappings": { "dynamic": true } }
다음 JSON MongoDB Search 인덱스 정의는 정적 매핑을 사용하여 구체화된 뷰의 필드를 자동 완성 유형으로 인덱스 . 이 인덱스 사용하여 자동 완성 연산자 로 쿼리를 실행 수 있습니다.
autocomplete
유형으로 인덱싱된 필드에 대해서는 queryString 연산자 사용하여 쿼리를 실행 수 없습니다.
{ "mappings": { "dynamic": false, "fields": { "accommodatesNumber": [ { "dynamic": true, "type": "document" }, { "minGrams": 1, "type": "autocomplete" } ], "lastScrapedDate": [ { "dynamic": true, "type": "document" }, { "type": "autocomplete" } ], "maximumNumberOfNights": [ { "dynamic": true, "type": "document" }, { "minGrams": 1, "type": "autocomplete" } ] } } }
선호하는 인터페이스를 사용하여 위에 정의된 인덱스를 생성하는 방법을 학습 지원되는 클라이언트를 참조하세요.
변환된 필드에서 쿼리 실행
문자열로 변환된 숫자 및 날짜 필드에 대해 쿼리를 실행할 수 있습니다. 이 튜토리얼에서는 queryString 및 자동 완성 연산자를 사용하여 속성을 검색합니다. 이 쿼리는 다음 파이프라인 단계를 사용합니다.
이 섹션에서는 Atlas 클러스터에 연결하고 airbnb_mat_view
컬렉션의 필드에 대해 연산자를 사용하여 샘플 쿼리를 실행합니다.