문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

읽기 설정 태그 세트 목록

이 페이지의 내용

  • 태그 매칭 순서
  • 태그 설정 목록 및 읽기 설정 모드

복제본 세트 멤버가 tags에 연결된 경우 읽기 설정에서 태그 세트 목록(태그 세트의 배열)을 지정하여 해당 멤버를 대상으로 지정할 수 있습니다.

태그를 사용하여 멤버를 구성하려면 members[n].tags를 태그 이름 및 값 쌍이 포함된 문서로 설정합니다. 태그의 값은 문자열이어야 합니다.

{ "<tag1>": "<string1>", "<tag2>": "<string2>",... }

그런 다음 읽기 설정에 태그 세트 목록을 포함해 태그가 지정된 멤버를 대상으로 할 수 있습니다. 태그 세트 목록은 태그 세트의 배열로, 각 태그 세트에는 하나 이상의 태그/값 쌍이 포함되어 있습니다.

[ { "<tag1>": "<string1>", "<tag2>": "<string2>",... }, ... ]

복제본 세트 멤버를 찾기 위해 MongoDB는 일치하는 항목을 찾을 때까지 각 문서를 연속적으로 시도합니다. 자세한 내용은 태그 일치 순서 를 참조하세요.

예를 들어 세컨더리 멤버가 다음과 같은 members[n].tags를 가지고 있는 경우입니다.

{ "region": "South", "datacenter": "A" }

그러면 다음 태그 세트 목록은 앞서 언급한 세컨더리(또는 동일한 태그를 가진 다른 멤버)에게 읽기 작업을 지시할 수 있습니다.

[ { "region": "South", "datacenter": "A" }, { } ] // Find members with both tag values. If none are found, read from any eligible member.
[ { "region": "South" }, { "datacenter": "A" }, { } ] // Find members with the specified region tag. Only if not found, then find members with the specified datacenter tag. If none are found, read from any eligible member.
[ { "datacenter": "A" }, { "region": "South" }, { } ] // Find members with the specified datacenter tag. Only if not found, then find members with the specified region tag. If none are found, read from any eligible member.
[ { "region": "South" }, { } ] // Find members with the specified region tag value. If none are found, read from any eligible member.
[ { "datacenter": "A" }, { } ] // Find members with the specified datacenter tag value. If none are found, read from any eligible member.
[ { } ] // Find any eligible member.

태그 세트 목록에 여러 개의 문서가 포함되어 있는 경우, MongoDB는 일치하는 문서를 찾을 때까지 각 문서를 연속적으로 시도합니다. 일치하는 항목이 검색되면 해당 태그 세트를 사용하여 일치하는 모든 적합한 멤버를 찾고 나머지 태그 세트는 무시됩니다. 태그 세트와 일치하는 멤버가 없는 경우 읽기 작업은 오류와 함께 반환됩니다.

태그 사양과 일치하는 멤버가 없는 경우 오류를 방지하려면 태그 세트 목록의 마지막 요소로 빈 문서 { }를 추가하여 적격 멤버에서 읽을 수 있습니다.

예를 들어 세 개의 태그 세트가 있는 다음 태그 세트 목록을 가정해 보겠습니다.

[ { "region": "South", "datacenter": "A" }, { "rack": "rack-1" }, { } ]

먼저, MongoDB는 "region": "South""datacenter": "A"가 모두 태그된 멤버를 찾으려고 합니다.

{ "region": "South", "datacenter": "A" }
  • 멤버가 발견되면 나머지 태그 세트는 고려되지 않습니다. 대신 MongoDB는 이 태그 세트를 사용하여 모든 적격 멤버를 찾습니다.

  • 그렇지 않으면 MongoDB는 두 번째 문서에 지정된 태그가 있는 멤버를 찾으려고 시도합니다.

    { "rack": "rack-1" }
    • 태그가 지정된 멤버가 발견되면 나머지 태그 세트는 고려되지 않습니다. 대신 MongoDB는 이 태그 세트를 사용하여 모든 적격 멤버를 찾습니다.

    • 그렇지 않으면 세 번째 문서가 고려됩니다.

      { }

      빈 문서가 적격 멤버와 일치합니다.

태그는 모드 primary와 호환되지 않으며, 일반적으로 읽기 작업을 위해 세트의 세컨더리 멤버를 선택할 때만 적용됩니다. 그러나 nearest 읽기 모드는 태그 세트 목록과 함께 사용하면 네트워크 지연 시간이 가장 짧은 일치 멤버를 선택합니다. 이 멤버는 프라이머리 또는 세컨더리일 수 있습니다.

모드
참고 사항
primaryPreferred
지정된 태그 세트 목록은 적격 세컨더리 태그를 선택하는 경우에만 적용됩니다.
지정된 태그 세트 목록이 항상 적용됩니다.
지정된 태그 세트 목록은 적격 세컨더리 태그를 선택하는 경우에만 적용됩니다.
지정된 태그 세트 목록은 프라이머리 또는 적격 세컨더리를 선택하는지 여부에 따라 적용됩니다.

모드와 태그 세트 목록 간의 상호 작용에 대한 자세한 내용은 특정 읽기 설정 모드 문서를 참조하세요.

태그 세트 목록을 구성하는 방법에 대한 자세한 내용은 복제본 세트 태그 세트 구성 튜토리얼을 참조하세요.

← 읽기 설정