Docs Menu
Docs Home
/
데이터베이스 매뉴얼
/ / /

Mongo.setReadPref() (mongosh 메서드)

Mongo.setReadPref(mode, tagSet)

연결 객체 에서 메서드를 호출하여 setReadPref() 클라이언트 가 모든 쿼리를 복제본 세트 의 멤버로 라우팅하는 방법을 제어합니다.Mongo [1]

참고

해당 읽기 설정을 사용하려면 해당 연결을 사용하여 문서를 조회하기 전에 연결 객체에서 Mongo.setReadPref()를 호출해야 합니다.

[1] 특정 쿼리(1개 또는 여러 개)에 대해 읽기 설정을 적용하려면 반복하기 전에 커서에 cursor.readPref()를 적용하면 됩니다. 자세한 내용은 cursor.readPref()를 참조하세요.
Parameter
유형
설명

문자열

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

문서 배열

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

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

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

이 메서드는 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

Mongo.setReadPref() 의 동작은 다음과 같습니다.

mongosh 2.0부터 db.runCommand()는 연결 문자열을 통해 또는 Mongo.setReadPref() 메서드를 사용하여 추가된 모든 전역 읽기 설정을 무시합니다. 원하는 읽기 설정을 지정하려면 db.runCommand()를 호출할 때 options 인수를 사용합니다.

다음 작업에서는 읽기 설정 모드를 설정하여 읽기 대상을 세컨더리 노드로 지정합니다. 이는 암시적으로 세컨더리에서 읽기를 허용합니다.

db.getMongo().setReadPref('secondary')

그러나 mongosh를 사용하여 프라이머리에 연결된 상태에서 호출하는 경우 위 명령은 쿼리를 세컨더리로 라우팅하지 않습니다.

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

db.getMongo().setReadPref(
"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는 적격 세컨더리를 사용합니다.

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

돌아가기

Mongo.setCausalConsistency

이 페이지의 내용