Docs Menu
Docs Home
/
MongoDB Atlas
/ / / /

이 존재합니다

이 페이지의 내용

  • 정의
  • 구문
  • 옵션
  • 채점 동작
  • 예시
exists

exists 연산자는 문서에 지정된 인덱스 필드 이름에 대한 경로가 있는지 테스트합니다. 지정된 필드가 존재하지만 인덱싱되지 않은 경우 문서는 결과 세트에 포함되지 않습니다. exists는 종종 다른 검색 절과 함께 복합 쿼리의 일부로 사용됩니다.

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

1{
2 $search: {
3 "index": <index name>, // optional, defaults to "default"
4 "exists": {
5 "path": "<field-to-test-for>",
6 "score": <options>
7 }
8 }
9}

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

필드
유형
설명
필수 사항입니다.

path

문자열

검색할 인덱싱된 필드입니다.

score

객체

일치하는 검색 결과에 할당할 점수입니다. 기본 점수를 수정하는 옵션에 대한 자세한 내용은 결과에서 문서 점수 매기기를 참조하세요.

no

Atlas Search는 결과 세트의 모든 문서에 constant점수 1 을 할당합니다. score 옵션을 사용하여 기본 Atlas 검색 점수를 사용자 지정할 수 있습니다. Atlas Search에서 반환되는 기본 점수를 수정하는 방법에 대한 자세한 내용은 점수 수정을 참조하세요.

Atlas Search Playground 또는 Atlas 클러스터에서 다음 예시를 사용해 볼 수 있습니다.

이 페이지의 예시에서는 다음 문서가 포함된 fruit라는 컬렉션을 사용합니다.

1{
2 "_id" : 1,
3 "type" : "apple",
4 "description" : "Apples come in several varieties, including Fuji, Granny Smith, and Honeycrisp."
5},
6{
7 "_id" : 2,
8 "type" : "banana",
9 "description" : "Bananas are usually sold in bunches of five or six."
10},
11{ "_id" : 3,
12 "type": "apple",
13 "description" : "Apple pie and apple cobbler are popular apple-based desserts."
14},
15{ "_id" : 4,
16 "description" : "Types of citrus fruit include lemons, oranges, and grapefruit.",
17 "quantities" : {
18 "lemons": 200,
19 "oranges": 240,
20 "grapefruit": 160
21 }
22}

fruit 컬렉션에는 기본 표준 분석기를 사용하는 기본 동적 Atlas Search 인덱스가 있습니다. standard 분석기는 모든 단어를 소문자로 처리하고 일반적인 중지 단어("the", "a", "and", 등)는 무시합니다.

다음 쿼리는 Atlas Search 쿼리의 exists 연산자를 보여줍니다.

다음 예시에서는 type이라는 필드가 포함된 문서를 검색합니다.

1db.fruit.aggregate([
2 {
3 $search: {
4 "exists": {
5 "path": "type"
6 }
7 }
8 }
9])

위의 쿼리는 컬렉션의 처음 세 문서를 반환합니다. _id: 4 가 있는 문서는 type 필드가 없기 때문에 포함되지 않습니다.

Atlas Search 플레이그라운드에서 시도해 보세요.

임베디드 필드를 검색하려면 점 표기법을 사용합니다. 다음 예시에서는 quantities 필드 내에 lemons 필드가 포함된 문서를 검색합니다.

1db.fruit.aggregate([
2 {
3 "$search": {
4 "exists": {
5 "path": "quantities.lemons"
6 }
7 }
8 }
9])
1{
2 "_id" : 4,
3 "description" : "Types of citrus fruit include lemons, oranges, and grapefruit.",
4 "quantities" : {
5 "lemons": 200,
6 "oranges": 240,
7 "grapefruit": 160
8 }
9}

Atlas Search Playground에서 사용해 보세요

다음 예에서는 exists복합 쿼리의 일부로 사용합니다.

1db.fruit.aggregate([
2 {
3 $search: {
4 "compound": {
5 "must": [
6 {
7 "exists": {
8 "path": "type"
9 }
10 },
11 {
12 "text": {
13 "query": "apple",
14 "path": "type"
15 }
16 }],
17 "should": {
18 "text": {
19 "query": "fuji",
20 "path": "description"
21 }
22 }
23 }
24 }
25 }
26])
1{
2 "_id" : 1,
3 "type" : "apple",
4 "description" : "Apples come in several varieties, including Fuji, Granny Smith, and Honeycrisp."
5}
6{
7 "_id" : 3,
8 "type" : "apple",
9 "description" : "Apple pie and apple cobbler are popular apple-based desserts."
10}

두 문서 모두 type 필드가 있고 검색어 apple이 포함되어 있습니다. _id: 1 이 있는 문서가 should 절을 충족하므로 먼저 반환됩니다.

Atlas Search Playground에서 사용해 보세요

돌아가기

같음