문서 메뉴

문서 홈MongoDB 실행 및 관리MongoDB Atlas

날짜 및 숫자 필드에 대해 Atlas Search 문자열 쿼리를 실행하는 방법

이 페이지의 내용

  • 컬렉션에 구체화된 뷰 만들기
  • 구체화된 뷰의 필드에 Atlas Search 인덱스 생성
  • 변환된 필드에서 텍스트 검색 수행

이 튜토리얼에서는 sample_airbnb.listingsAndReviews 컬렉션의 string, datenumber 필드에 대해 Atlas Search 쿼리를 실행하는 방법을 설명합니다. 숫자 및 날짜 필드 값을 문자열로 저장하는 구체화된 뷰 를 생성합니다. 그런 다음 구체화된 뷰에 Atlas Search 인덱스를 생성하고 queryString자동 완성 연산자를 사용하여 이러한 문자열 필드에 대해 쿼리를 실행합니다. 이 튜토리얼에서는 다음 단계를 안내합니다.

  1. sample_airbnb.listingsAndReviews 컬렉션 name, property_type, last_scrapedaccomodates 필드에 구체화된 뷰를 생성합니다.

  2. 구체화된 뷰에서 동적 및 정적 Atlas Search 인덱스를 설정합니다.

  3. queryString자동 완성 연산자를 사용하여 구체화된 뷰의 필드에 대해 Atlas Search 쿼리를 실행하여 속성을 검색합니다.

시작하기 전에 Atlas cluster가 필수구성 요소에 설명된 요건을 충족하는지 확인하십시오.

Atlas Search 인덱스를 생성하려면 프로젝트에 대한 Project Data Access Admin 이상의 액세스 권한이 있어야 합니다.

이 섹션에서는 airbnb_listingsAndReviews 컬렉션의 name, property_type, last_scraped, accomodatesmaximum_nights 필드에 대해 airbnb-mat-view 이라는 구체화된 뷰 를 생성합니다. 구체화된 뷰를 사용하면 소스 컬렉션에서 숫자 및 날짜 필드를 가져와 구체화된 뷰에 문자열 필드로 저장할 수 있습니다.

1

터미널 창에서 mongosh 를 열고 클러스터에 연결합니다. 연결에 대한 자세한 지침은 mongosh 를 통한 연결을 참조하세요.

2
  1. 다음 명령을 실행하여 클러스터에 데이터베이스가 있는지 확인합니다.

    show dbs
    sample_airbnb 55.3 MB
    sample_analytics 9.59 MB
    sample_geospatial 1.43 MB
    sample_guides 41 kB
    sample_mflix 51.1 MB
    sample_restaurants 6.95 MB
    sample_supplies 1.21 MB
    sample_training 55.5 MB
    sample_weatherdata 2.89 MB
    admin 348 kB
    local 2.1 GB
  2. 다음 명령을 실행하여 sample_airbnb 데이터베이스로 전환합니다.

    use sample_airbnb
    switched to db sample_airbnb
3

구체화된 뷰를 생성하려면 다음 쿼리를 실행합니다. 이 쿼리는 다음 집계 파이프라인 단계를 지정합니다.

  • $project: 이 단계에서 쿼리는 다음을 수행합니다.

    • $dateToString를 사용하여 last_scraped 날짜 객체를 YYYY-MM-DD 형식의 문자열로 변환합니다

    • nameproperty_type 문자열 필드를 포함합니다.

    • $toString를 사용하여 accomodates 숫자 필드를 문자열로 변환합니다.

    • $toString를 사용하여 maximum_nights 숫자 필드를 문자열로 변환합니다.

  • $merge: 이 단계에서 쿼리는 $project 단계의 출력 필드를 airbnb_mat_view 이라는 구체화된 뷰에 씁니다.

    db.listingsAndReviews.aggregate( [
    {
    $project: {
    lastScrapedDate: { $dateToString: { format: "%Y-%m-%d", date: "$last_scraped" } },
    propertyName: "$name",
    propertyType: "$property_type",
    accommodatesNumber: { $toString: "$accommodates" },
    maximumNumberOfNights: { $toString: "$maximum_nights" }
    }
    },
    { $merge: { into: "airbnb_mat_view", whenMatched: "replace" } }
    ] )
4

확인하려면 다음 명령을 실행합니다.

db.airbnb_mat_view.findOne()
{
_id: '10006546',
lastScrapedDate: '2019-02-16',
propertyName: 'Ribeira Charming Duplex',
propertyType: 'House',
accommodatesNumber: '8',
maximumNumberOfNights: '30'
}

이 섹션에서는 lastScrapedDate, name, propertyType, accommodatesNumbermaximumNumberOfNights 필드에 대해 쿼리를 실행하기 위해 Atlas Search 인덱스를 생성합니다.

1
  1. 이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 이미 표시되어 있지 않은 경우 Projects 탐색 모음의 프로젝트 메뉴에서 원하는 프로젝트를 선택합니다.

  3. Database Deployments 페이지가 아직 표시되지 않은 경우 사이드바에서 Database를 클릭합니다.

2
  1. 클러스터 이름을 클릭합니다.

  2. Atlas Search 탭을 클릭합니다.

3
4
  • 안내를 따라 진행하고자 할 때는 Visual Editor를 선택합니다.

  • 원시 인덱스 정의를 수정하려면 JSON Editor를 선택합니다.

5
  1. Index Name 필드에 date-number-fields-tutorial를 입력합니다.

    참고

    인덱스 이름을 default으로 지정하면 $search 파이프라인 단계를 사용할 때 index 매개 변수를 지정할 필요가 없습니다. 그렇지 않으면 index 매개 변수를 사용하여 인덱스 이름을 지정해야 합니다.

  2. Database and Collection 섹션에서 sample_airbnb 데이터베이스를 찾고 airbnb_mat_view 컬렉션을 선택합니다.

6

다음 인덱스 중 하나를 생성할 수 있습니다.

  • queryString 연산자를 사용하여 쿼리를 실행하기 위해 동적 매핑을 사용하는 인덱스입니다. 인덱스 정의가 동적 매핑만 사용하는 경우 자동 완성 연산자를 사용하여 쿼리를 실행할 수 없습니다.

  • 자동 완성 연산자를 사용하여 쿼리를 실행하기 위해 정적 매핑을 사용하는 인덱스입니다. autocomplete 유형으로 인덱싱된 필드에 대해서는 queryString 연산자를 사용하여 쿼리를 실행할 수 없습니다.

7

참고

인덱스가 작성 중임을 알려주는 You're All Set! 모달 창이 나타납니다.

8

문자열로 변환된 숫자 및 날짜 필드에 대해 쿼리를 실행할 수 있습니다. 이 튜토리얼에서는 queryString자동 완성 연산자를 사용하여 속성을 검색합니다. 이 쿼리는 다음 파이프라인 단계를 사용합니다.

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

  • 출력을 5 결과로 제한하는 $limit 단계

  • $project 제외할 단계 _id

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

참고

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


➤ 이 페이지의 언어 선택 드롭다운 메뉴를 사용하여 이 섹션에 있는 예제의 언어를 설정합니다.


← 날짜 범위 필터를 사용한 Atlas Search 쿼리 실행 방법