Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

cursor.readPref()

이 페이지의 내용

  • 정의
  • 예시
cursor.readPref(mode, tagSet, hedgeOptions)

중요

Mongo쉬 방법

이 페이지에서는 mongosh 메서드를 설명합니다. 이는 Node.js와 같은 언어별 드라이버에 대한 설명서가 아닙니다.

MongoDB API 드라이버의 경우 언어별 MongoDB 드라이버 설명서를 참조하세요.

커서에 readPref() 를 추가하여 클라이언트가 쿼리를 복제본 세트의 멤버로 라우팅하는 방법을 제어합니다.

참고

데이터베이스에서 문서를 검색하기 전에 커서에 readPref()을 적용해야 합니다.

Parameter
유형
설명
문자열

다음 읽기 설정 (read preference) 모드 중 하나: primary, primaryPreferred, secondary, secondaryPreferred 또는 nearest

문서 배열

선택 사항. 지정된 태그가 있는 멤버에게 읽기 대상을 지정하는 데 사용되는 태그 세트 입니다. tagSet 은 사용할 수 없습니다 primary

자세한 내용은 읽기 설정 (read preference) 태그 세트 목록을 참조하세요.

문서

중요: MongoDB 8.0 부터 헤지된 읽기(hedged read)는 더 이상 사용되지 않습니다. 읽기 설정 (read preference) nearest 을 지정하는 쿼리는 더 이상 기본값 헤지된 읽기(hedged read)를 사용하지 않습니다. 헤지된 읽기( 헤지된 읽기 (hedged read))를 명시적으로 지정하면 MongoDB 는 헤지된 읽기( 헤지된 읽기 (hedged read) read)를 수행하고 경고를 기록합니다.

선택 사항. 헤지된 읽기( hedged read) 사용 여부를 지정하는 문서입니다.

{ enabled: <boolean> }

enabled 필드의 기본값은 true입니다. 즉, 빈 문서 { } 을 지정하는 것은 { enabled: true } 를 지정하는 것과 같습니다.

readPref()는 읽기 설정에 대한 읽기 설정 maxStalenessSeconds 옵션을 지원하지 않습니다.

다음 작업은 읽기 설정 모드 를 사용하여 읽기 대상을 세컨더리 멤버로 지정합니다.

db.collection.find({ }).readPref( "secondary")

특정 태그가 있는 세컨더리를 대상으로 하려면 modetagSet 배열을 모두 포함합니다.

db.collection.find({ }).readPref(
"secondary",
[
{ "datacenter": "B" }, // First, try matching by the datacenter tag
{ "region": "West"}, // If not found, then try matching by the region tag
{ } // If not found, then use the empty document to match all eligible members
]
)

세컨더리 선택 프로세스에서 MongoDB는 datacenter: "B" 태그가 있는 세컨더리 멤버를 먼저 찾으려고 합니다.

  • 발견되면 MongoDB는 적격 세컨더리를 datacenter: "B" 태그가 있는 세컨더리로 제한하고 나머지 태그를 무시합니다.

  • 아무것도 발견되지 않으면 MongoDB는 "region": "West" 태그를 사용하여 세컨더리 멤버를 찾으려고 시도합니다.

    • 발견되면 MongoDB는 적격 세컨더리를 "region": "West" 태그가 있는 세컨더리로 제한합니다.

    • 아무것도 발견되지 않으면 MongoDB는 적격 세컨더리를 사용합니다.

자세한 내용 은 태그 일치 순서를 참조하세요.

다음도 참조하세요.

샤딩된 클러스터의 경우 프라이머리가 아닌 읽기 설정 (read preference) 에 대한 헤지된 읽기( hedged read )를 활성화 할 수 있습니다. 헤지된 읽기(hedged read)를 사용하려면 mongos 에 헤지된 읽기(hedged read)에 대한 enabled support 가 있어야 하며( 기본값) primary 이 아닌 읽기 설정 에서 헤지된 읽기(hedged read)를 활성화 있어야 합니다.

헤지된 읽기를 사용하여 샤딩된 클러스터의 세컨더리를 대상으로 하려면 다음 예와 같이 모드hedgeOptions를 모두 포함해야 합니다.

  • 태그 세트 없이

    db.collection.find({ }).readPref(
    "secondary", // mode
    null, // tag set
    { enabled: true } // hedge options
    )
  • 태그 세트 포함

    db.collection.find({ }).readPref(
    "secondary", // mode
    [ { "datacenter": "B" }, { } ], // tag set
    { enabled: true } // hedge options
    )

돌아가기

커서.readConcern

이 페이지의 내용