cursor.readPref()
定義
cursor.readPref(mode, tagSet, hedgeOptions)
重要
mongosh メソッド
これは
mongosh
メソッドです。 これは、Node.js
またはその他のプログラミング言語固有のドライバー メソッドのドキュメントではありません。ほとんどの場合、
mongosh
メソッドはレガシーのmongo
shell メソッドと同じように動作します。 ただし、一部のレガシー メソッドはmongosh
では利用できません。レガシー
mongo
shell のドキュメントについては、対応する MongoDB Server リリースのドキュメントを参照してください。MongoDB API ドライバーについては、各言語のMongoDB ドライバードキュメント を参照してください。
カーソルに
readPref()
を追加して、クライアントがレプリカセットのノードにクエリをルーティングする方法を制御します。注意
データベースからドキュメントを取得する前に、カーソルに
readPref()
を適用する必要があります。
パラメーター
Parameter | タイプ | 説明 |
---|---|---|
string | 次の 読み取り設定 モードのいずれか: | |
ドキュメントの配列 | 任意。 指定されたタグを持つメンバーへの読み取りをターゲットにするために使用されるタグセット。 詳しくは、「読み込み設定(read preference)のタグセット リスト」を参照してください。 | |
ドキュメント | 任意。 ヘッジの使用を有効にするかどうかを指定するドキュメント。
ヘッジされた読み取り は シャーディングされたクラスター で利用できます。 ヘッジされた読み取りを使用するには、 読み込み設定(read preference) |
readPref()
は、読み込み設定(read preference)の 読み込み設定(read preference maxStalenessSeconds
オプションをサポートしていません。
例
読み込み設定(read preference)モードを指定する
次の操作では、 読み込み設定(read preference)モードを使用して、セカンダリ メンバーへの読み取りをターゲットにします。
db.collection.find({ }).readPref( "secondary")
読み込み設定(read preference)のタグセットを指定する
特定のタグを持つセカンダリを対象とするには、モードとtagsSet配列の両方を含めます。
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 ) で ヘッジされ た読み取りを有効にできます。ヘッジされた読み取りを使用するには、 mongos
にヘッジされた読み取り用のenabled support
(デフォルト)と、 primary
以外の 読み込み設定( read preference ) でヘッジされた読み取りの使用が有効になっている必要があります。
ヘッジされた読み取りを使用してシャーディングされたクラスター上のセカンダリを対象とするには、次の例のようにモードと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 )