ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Docs Menu

cursor.readPref()

項目一覧

cursor.readPref(mode, tagSet, hedgeOptions)

重要

mongosh メソッド

このページでは、mongosh メソッドについて記載しています。これは Node.js などの言語固有のドライバーのドキュメントではありません

MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。

カーソルにreadPref()を追加して、クライアントがレプリカセットのノードにクエリをルーティングする方法を制御します。

注意

データベースからドキュメントを取得する前に、カーソルにreadPref()を適用する必要があります。

Parameter
タイプ
説明

string

次の 読み取り設定 モードのいずれか: primaryprimaryPreferredsecondarysecondaryPreferred、または nearest

ドキュメントの配列

任意。 指定されたタグを持つメンバーへの読み取りをターゲットにするために使用されるタグセットtagSetは使用できませんprimary

詳しくは、「読み込み設定(read preference)のタグセット リスト」を参照してください。

ドキュメント

重要: MongoDB8.0 以降、ヘッジされた読み取りは非推奨になっています。読み込み設定( 読み込み設定 (read preference) )nearest を指定するクエリは、デフォルトでヘッジされた読み取りを使用しなくなりました。ヘッジされたヘッジされた読み取りを明示的に指定すると、 MongoDBはヘッジされた読み取りを実行し、警告をログに記録します。

任意。 ヘッジの使用を有効にするかどうかを指定するドキュメント。

{ enabled: <boolean> }

enabled フィールドのデフォルトは true です。つまり、空のドキュメント { } を指定することは { enabled: true } を指定することと同じです。

readPref()は、読み込み設定(read preference)の 読み込み設定(read preference maxStalenessSecondsオプションをサポートしていません。

このメソッドは、次の環境でホストされている配置で使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

注意

このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

次の操作では、 読み込み設定(read preference)モードを使用して、セカンダリ メンバーへの読み取りをターゲットにします。

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

特定のタグを持つセカンダリを対象とするには、モード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
    )

項目一覧