문서 홈 → MongoDB 실행 및 관리 → MongoDB Atlas
날짜 및 숫자 필드에 대해 Atlas Search 문자열 쿼리를 실행하는 방법
이 튜토리얼에서는 sample_airbnb.listingsAndReviews
컬렉션의 string
, date
및 number
필드에 대해 Atlas Search 쿼리를 실행하는 방법을 설명합니다. 숫자 및 날짜 필드 값을 문자열로 저장하는 구체화된 뷰 를 생성합니다. 그런 다음 구체화된 뷰에 Atlas Search 인덱스를 생성하고 queryString 및 자동 완성 연산자를 사용하여 이러한 문자열 필드에 대해 쿼리를 실행합니다. 이 튜토리얼에서는 다음 단계를 안내합니다.
sample_airbnb.listingsAndReviews
컬렉션name
,property_type
,last_scraped
및accomodates
필드에 구체화된 뷰를 생성합니다.구체화된 뷰에서 동적 및 정적 Atlas Search 인덱스를 설정합니다.
queryString 및 자동 완성 연산자를 사용하여 구체화된 뷰의 필드에 대해 Atlas Search 쿼리를 실행하여 속성을 검색합니다.
시작하기 전에 Atlas cluster가 필수구성 요소에 설명된 요건을 충족하는지 확인하십시오.
Atlas Search 인덱스를 생성하려면 프로젝트에 대한 Project Data Access Admin
이상의 액세스 권한이 있어야 합니다.
컬렉션에 구체화된 뷰 만들기
이 섹션에서는 airbnb_listingsAndReviews
컬렉션의 name
, property_type
, last_scraped
, accomodates
및 maximum_nights
필드에 대해 airbnb-mat-view
이라는 구체화된 뷰 를 생성합니다. 구체화된 뷰를 사용하면 소스 컬렉션에서 숫자 및 날짜 필드를 가져와 구체화된 뷰에 문자열 필드로 저장할 수 있습니다.
Atlas에 로그인하고 mongosh
을(를) 사용하여 클러스터에 연결합니다.
터미널 창에서 mongosh
를 열고 클러스터에 연결합니다. 연결에 대한 자세한 지침은 mongosh
를 통한 연결을 참조하세요.
sample_airbnb
데이터베이스를 확인하고 전환합니다.
다음 명령을 실행하여 클러스터에 데이터베이스가 있는지 확인합니다.
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 다음 명령을 실행하여
sample_airbnb
데이터베이스로 전환합니다.use sample_airbnb switched to db sample_airbnb
airbnb_mat_view
이라는 구체화된 뷰를 생성합니다.
구체화된 뷰를 생성하려면 다음 쿼리를 실행합니다. 이 쿼리는 다음 집계 파이프라인 단계를 지정합니다.
$project
: 이 단계에서 쿼리는 다음을 수행합니다.$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" } } ] )
구체화된 뷰의 필드에 Atlas Search 인덱스 생성
이 섹션에서는 lastScrapedDate
, name
, propertyType
, accommodatesNumber
및 maximumNumberOfNights
필드에 대해 쿼리를 실행하기 위해 Atlas Search 인덱스를 생성합니다.
Index Name을(를) 입력하고 을(를)Database and Collection 설정합니다.
Index Name 필드에
date-number-fields-tutorial
를 입력합니다.참고
인덱스 이름을
default
으로 지정하면 $search 파이프라인 단계를 사용할 때index
매개 변수를 지정할 필요가 없습니다. 그렇지 않으면index
매개 변수를 사용하여 인덱스 이름을 지정해야 합니다.Database and Collection 섹션에서
sample_airbnb
데이터베이스를 찾고airbnb_mat_view
컬렉션을 선택합니다.
구체화된 뷰의 필드에 인덱스를 정의합니다.
다음 인덱스 중 하나를 생성할 수 있습니다.
queryString 연산자를 사용하여 쿼리를 실행하기 위해 동적 매핑을 사용하는 인덱스입니다. 인덱스 정의가 동적 매핑만 사용하는 경우 자동 완성 연산자를 사용하여 쿼리를 실행할 수 없습니다.
자동 완성 연산자를 사용하여 쿼리를 실행하기 위해 정적 매핑을 사용하는 인덱스입니다.
autocomplete
유형으로 인덱싱된 필드에 대해서는 queryString 연산자를 사용하여 쿼리를 실행할 수 없습니다.
변환된 필드에서 텍스트 검색 수행
문자열로 변환된 숫자 및 날짜 필드에 대해 쿼리를 실행할 수 있습니다. 이 튜토리얼에서는 queryString 및 자동 완성 연산자를 사용하여 속성을 검색합니다. 이 쿼리는 다음 파이프라인 단계를 사용합니다.
이 섹션에서는 Atlas 클러스터에 연결하고 airbnb_mat_view
컬렉션의 필드에 대해 연산자를 사용하여 샘플 쿼리를 실행합니다.
➤ 이 페이지의 언어 선택 드롭다운 메뉴를 사용하여 이 섹션에 있는 예제의 언어를 설정합니다.