Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

sh.addTagRange()

項目一覧

  • 定義
  • 互換性
  • 動作
sh.addTagRange(namespace, minimum, maximum, tag)

注意

このメソッドは sh.updateZoneKeyRange()のエイリアスになります。 MongoDB は、タグ対応シャーディングの継承としてゾーン シャーディングを提供します。

sh.addShardTag()メソッドを使用して作成されたシャード タグに、一定のシャードキー値を付与します。

updateZoneKeyRangeデータベースコマンドとそのヘルパーsh.updateZoneKeyRange()およびsh.addTagRange()は、シャーディングされていないコレクションまたは存在しないコレクションで実行できます。

sh.addTagRange() 以下の引数を取ります。

Parameter
タイプ
説明

namespace

string

タグを付けるシャーディングされたコレクションの名前空間

minimum

ドキュメント

タグに含めるシャードキー範囲の最小値。 最小値は包括的一致です。 <fieldname>:<value>の形式で最小値を指定します。 この値は、シャードキーと同じ BSON type である必要があります。

maximum

ドキュメント

タグに含めるシャードキー範囲の最大値。 最大値は排他一致です。 <fieldname>:<value>の形式で最大値を指定します。 この値は、シャードキーと同じ BSON type である必要があります。

tag

string

minimummaximumの引数で指定された範囲を添付するタグの名前。

sh.addShardTag()を使用して、バランサーが指定された範囲内に存在するドキュメントを特定のシャードまたはシャードのセットに移行するようにします。

sh.addTagRange()インスタンスに接続されている場合にのみmongos を発行します。

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

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

重要

このコマンドは、M 0 、M 2 、M 5クラスターではサポートされていません。 詳細については、「サポートされていないコマンド 」を参照してください。

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

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

ゾーン範囲は、常に下限を含み、上限を含まない範囲です。

空のコレクション、または存在しないコレクションに対して ゾーン シャーディング を実行することを検討している場合は、コレクションをシャーディングする 前に 、sh.addTagRange() を使用してゾーンとゾーン範囲を作成します。空のコレクションまたは存在しないコレクションにゾーンとゾーン範囲を作成すると、MongoDB はコレクションをシャーディングするときに初期チャンクの作成と分散プロセスを最適化できます。 この最適化されたプロセスにより、シャーディング後にゾーンを作成するよりもバランサーのオーバーヘッドが少なく、ゾーンシャーディングの迅速なセットアップがサポートされます。 バランサーは、最適化された最初のチャンク作成と分散後に、すべてのチャンク管理を実行します。

最初のチャンク分散のゾーンとゾーン範囲の定義の例については、「空または存在しないコレクションのゾーンとゾーン範囲の事前定義 」を参照してください。

MongoDB は、ハッシュされた複合インデックスでのコレクションのシャーディングをサポートしています。 MongoDB は、空のコレクションまたは存在しないコレクションを 複合ハッシュされたシャードキー でシャーディングするときに、最適化された初期チャンクの作成と分散を実行できます。

ハッシュされたフィールドがシャードキーのプレフィックス(つまり、シャードキーの最初のフィールド)である場合、MongoDB が初期チャンクの作成と分散を実行するには、次のすべてが当てはまる必要があります。

  • コレクションには単一のゾーン範囲があり、すべての下限フィールドにはMinKey 、すべての上限フィールドにはMaxKeyが含まれます。

  • sh.shardCollection()presplitHashedZones: trueオプションを指定します。

ハッシュされたフィールドがシャードキーのプレフィックスではない場合(つまり、シャードキーにハッシュされていない先頭フィールドが 1 つ以上ある場合)、MongoDB が初期チャンクの作成と分散を実行するには、次のすべてが当てはまる必要があります。

  • コレクションには、個別のプレフィックスフィールド値の組み合わせごとに 1 つのゾーン範囲があります(つまり ハッシュされたフィールドに先行するすべてのフィールド)。

  • 各ゾーン範囲の下限について、ハッシュされたフィールドとそれ以降のすべてのフィールドにMinKeyを指定します。

  • 各ゾーン範囲について、少なくとも 1 つの上限プレフィックス フィールドがその下限のカウンター と 異なる必要があります。

  • sh.shardCollection()presplitHashedZones: trueオプションを指定します。

複合ハッシュされたシャードキーでの初期チャンク分散のためのゾーンとゾーン範囲の定義のより詳細な例については、「空または存在しないコレクションのゾーンとゾーン範囲の事前定義 」を参照してください。

コレクションを削除すると、それに関連付けられたゾーンやタグの範囲も削除されます。

以前のバージョンでは、MongoDB は削除されたコレクションのタグ関連付けを削除せず、後で同じ名前で新しいコレクションを作成すると、古いタグの関連付けが新しいコレクションに適用されます。

シャードキーが{state: 1, zip: 1}の場合、次の操作では、ニューヨーク州の郵便番号をカバーするタグ範囲が作成されます。

sh.addTagRange( "exampledb.collection",
{ state: "NY", zip: MinKey },
{ state: "NY", zip: MaxKey },
"NY"
)

戻る

sh.addShardToZone