Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/
Atlas
/ /

비알파벳 데이터를 문자열로 검색하는 방법

이 튜토리얼은 필드를 문자열로 변환하고 이를 구체화된 뷰에 저장하여 문자열이 아닌 필드에 대해 문자열별 쿼리를 실행하는 방법을 보여줍니다. 구체화된 뷰를 사용하면 문자열 전용 연산자를 사용하여 변환된 필드를 쿼리하고 원본 데이터를 소스 컬렉션에 그대로 유지할 수 있습니다.

이 튜토리얼에서는 다음 단계를 안내합니다:

  1. 샘플 컬렉션 에 구체화된 뷰 만들기

  2. 구체화된 뷰에 MongoDB Search 인덱스 생성

  3. 구체화된 뷰에서 변환된 필드에 대해 MongoDB Search 쿼리 실행

시작하기 전에 Atlas 클러스터가 필수 구성 요소에 설명된 요건을 충족하는지 확인하세요.

섹션에서는 airbnb-mat-view sample_airbnb.listingsAndReviews 에서 라는 구체화된 뷰 를 생성하는 방법을 보여줍니다. 컬렉션. 이 뷰는 소스 컬렉션 의 다양한 숫자 및 날짜 필드를 문자열 필드로 저장합니다.

이 튜토리얼의 변환된 필드에서 쿼리 실행 단계에서 쿼리를 실행 하려면 구체화된 뷰에서 변환된 문자열 필드에 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자동 완성 연산자를 사용하여 속성을 검색합니다. 이 쿼리는 다음 파이프라인 단계를 사용합니다.

  • $search 컬렉션을 검색하는 단계

  • $limit 단계는 출력을 5 결과로만 제한합니다.

  • $project 제외할 단계 _id

이 섹션에서는 Atlas 클러스터에 연결하고 airbnb_mat_view 컬렉션의 필드에 대해 연산자를 사용하여 샘플 쿼리를 실행합니다.

참고

구체화된 뷰에서 문자열로 변환된 날짜 및 숫자 필드에 대해서는 근거리 또는 범위 쿼리를 실행할 수 없습니다.

돌아가기

데이터 모델을 위한 검색 설계

이 페이지의 내용