문서 메뉴

문서 홈MongoDB 실행 및 관리MongoDB Atlas

쿼리 문자열

이 페이지의 내용

  • 정의
  • 구문
  • 옵션
  • 예제
  • 부울 연산자 쿼리
  • 범위 쿼리
  • 와일드카드 쿼리
queryString

queryString 연산자는 인덱싱된 필드와 값의 조합에 대한 쿼리를 지원합니다. queryString 연산자를 사용하여 string 필드에서 텍스트, 와일드카드, 정규 표현식, 퍼지 및 범위 검색을 수행할 수 있습니다.

queryString 의 구문은 다음과 같습니다:

1{
2 "$search": {
3 "index": <index name>, // optional, defaults to "default"
4 "queryString": {
5 "defaultPath": "<default-field-to-search>",
6 "query": "(<field-to-search>: (<search-values>) AND|OR (<search-values>)) AND|OR (<search-values>)"
7 }
8 }
9}

queryString 는 다음 용어를 사용하여 쿼리를 구성합니다:

필드
유형
설명
필요성
defaultPath
문자열
기본적으로 검색할 인덱싱된 필드입니다. Atlas Search는 query에서 검색할 필드를 생략한 경우에만 defaultPath의 필드를 검색합니다.
query
문자열

하나 이상의 인덱싱된 필드와 검색 대상 값입니다. 필드와 값은 콜론으로 구분됩니다. 예를 들어 plot 필드에서 baseball 문자열을 검색하려면 plot:baseball를 사용합니다. 여러 검색 기준을 결합하는 데 사용할 수 있는 연산자는 다음과 같습니다.

다음을 사용하여 필드와 값을 결합할 수 있습니다.

AND
AND 부울 연산자를 나타냅니다. 문서가 결과에 포함되려면 모든 검색 값이 있어야 합니다.
OR
OR 부울 연산자를 나타냅니다. 문서를 결과에 포함하려면 검색 값 중 하나 이상이 있어야 합니다.
NOT
0}NOT 부울 연산자를 나타냅니다. 문서가 결과에 포함되려면 지정된 검색 값이 없어야 합니다.
TO
검색할 범위를 나타냅니다. 포함 범위에는 [], 배타적 범위에는 {}, 반개방 범위에는 {][}를 사용할 수 있습니다. 문서가 결과에 포함되려면 지정된 범위 내에 속하는 모든 값이 있어야 합니다.
()
하위 쿼리용 구분 기호입니다. 괄호를 사용하여 검색할 필드와 값을 그룹화할 수 있습니다.

다음도 참조하세요.

연산자와 구분 기호를 사용하여 샘플 movies 컬렉션을 검색하는 몇 가지 샘플 쿼리의 입니다.

다음을 사용하여 와일드카드 및 정규 표현식 쿼리를 실행할 수 있습니다.

?
일치시킬 단일 문자를 나타냅니다.
*
일치시킬 문자가 0개 이상임을 나타냅니다.
/
정규 표현식을 위한 구분자입니다.
~

검색어와 유사한 문자열을 찾기 위한 퍼지 검색을 나타냅니다. 이 연산자를 문자열의 여러 가지 텀과 함께 사용하는 경우 queryString 연산자는 지정된 수의 텀 범위 내에서 근접 검색합니다.

참고

퍼지 검색의 경우 queryString 연산자는 최대 2개의 수정 사항까지 용어를 일치시킵니다. 거리가 멀면 딕셔너리 용어의 상당 부분과 일치할 수 있으므로 유용하지 않습니다. 예를 들어 "foo":"stop"~2는 다음과 같습니다.

{ "path": "foo", "query": "stop", "maxEdits": 2 }

근접 검색의 경우 queryString 연산자는 검색 구문의 단어 간에 지정된 거리를 사용하여 용어를 찾습니다. 예를 들어 "foo":"New York"~2는 다음과 같습니다.

{ "path": "foo", "query": "New York", "slop": 2 }

참고

queryString 연산자는 쿼리의 첫 번째 문자로 * 와일드카드 쿼리를 지원하지 않습니다. queryString 연산자는 * 앞의 모든 문자를 접두사 또는 정확히 일치해야 하는 문자로 취급합니다.

score
객체

일치하는 검색 결과에 할당된 점수입니다. 다음 옵션을 사용하여 기본 점수를 수정할 수 있습니다.

  • boost결과 점수에 주어진 숫자를 곱합니다.

  • constant결과 점수를 주어진 숫자로 바꿉니다.

  • function결과 점수를 주어진 표현식으로 대체합니다.

쿼리에서 score 사용에 대한 자세한 내용은 결과에서 문서 채점하기를 참조하십시오.

참고

배열에서 값을 쿼리할 때, Atlas Search는 배열 내 쿼리와 일치하는 값의 개수에 따라 일치하는 결과의 점수를 수정하지 않습니다. 점수는 배열 내부의 일치 항목 수에 관계없이 단일 일치 항목과 동일합니다.

아니

다음 예에서는 sample_mflix 데이터베이스의 movies collection을 사용합니다. 클러스터에 샘플 데이터 세트가 있는 경우 동적 매핑을 사용하여 default라는 이름의 Atlas Search 인덱스를 생성하고 클러스터에서 예시 쿼리를 실행할 수 있습니다.

다음 예시에서는 queryString 연산자를 사용하여 captain, kirk, chess 용어가 포함된 영화 줄거리를 쿼리합니다. 이 예시에서는 괄호를 사용하여 동일한 검색어를 서로 다르게 그룹화하여 검색 결과에 서로 다른 문서가 포함될 수 있는 방법을 보여줍니다.

예제

다음 쿼리는 plot 필드에서 captain, kirkchess 용어의 조합을 검색합니다. 각 쿼리는 검색어가 그룹화되는 방식에 따라 다른 결과를 반환합니다.

쿼리에는 다음을 위한 $project 단계도 포함되어 있습니다.

  • title, plot, fullpath 이외의 모든 필드 제외

  • 다음과 같은 이름의 필드를 추가합니다. score

다음 예제에서는 queryString 연산자를 사용하여 퍼지, 와일드카드 및 정규 표현식을 사용하여 영화 제목을 쿼리합니다. 쿼리에는 title 제외한 모든 필드를 제외하는 $project 단계가 포함되어 있습니다.

← 
범위 →