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

sh.removeRangeFromZone()

項目一覧

  • 定義
  • 動作
sh.removeRangeFromZone(namespace, minimum, maximum)

シャードキー値の範囲とゾーンの間の関連付けを削除します。

sh.removeRangeFromZone() は、次のフィールドがあります。

Parameter
タイプ
説明
namespace
string

ゾーンに関連付けるシャーディングされたコレクションの名前空間

操作を成功させるには、コレクションをシャーディングする必要があります。

minimum
ドキュメント

シャードキー値の範囲の包括的下限。

シャードキーの各フィールドを<fieldname> : <value>の形式で指定します。 値は、シャードキーと同じ BSON type である必要があります。

maximum
ドキュメント

シャードキー値の範囲の排他的上限。

シャードキーの各フィールドを<fieldname> : <value>の形式で指定します。 値は、シャードキーと同じ BSON type である必要があります。

未使用、期限切れ、または競合するシャードキー範囲とゾーンの間の関連付けを削除するには、 sh.removeRangeFromZone()を使用します。

sh.removeRangeFromZone()に渡される最小境界と最大境界に一致する範囲がない場合、削除されるものはありません。

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

sh.removeRangeFromZone() では、ゾーンとシャードの間の関連付けは削除されません。 また、ゾーン自体は削除されません。

シャーディングされたクラスター内のゾーンの詳細については、ゾーンのマニュアル ページを参照してください。

範囲とゾーンの間の関連付けを削除すると、そのゾーン内のシャードで範囲によってカバーされるチャンクを維持する制約が削除されます。 次のバランサー ラウンド中に、バランサーは以前に ゾーンによってカバーされていたチャンクを移行する場合があります。

シャーディングされたクラスターで移行がどのように機能するかについて詳しくは、 シャーディングされたクラスター バランサーのドキュメントを参照してください。

認証 を使用して実行されているシャーディングされたクラスターの場合は、次のいずれかとして認証する必要があります。

  • configデータベース内のさまざまなコレクションに対して指定されたアクションを含む特権を持つユーザー:

    または、あるいは

  • クラスター リソースでenableSharding を含む 権限 を持つユーザー。

clusterAdminまたはclusterManagerの組み込みロールには、 sh.removeRangeFromZone()を実行するための適切な権限があります。 詳細については、ロールベースのアクセス制御に関するドキュメントページを参照してください。

シャーディングされたコレクションexampledb.collectionとシャードキーが{ a : 1 }の場合、次の操作を実行すると下限が1で上限が10の範囲が削除されます。

sh.removeRangeFromZone( "exampledb.collection",
{ a : 1 },
{ a : 10 }
)

minmaxは、ターゲット範囲の境界と完全に一致する必要があります。 次の操作は、以前に作成した範囲を削除しようとしますが、 minの限界として{ a : 0 }を指定します。

admin = db.getSiblingDB("admin")
admin.runCommand(
{
updateZoneKeyRange : "exampledb.collection",
min : { a : 0 },
max : { a : 10 },
zone : null
}
)

{ a : 0 }{ a : 10 }の範囲は既存の範囲を含みますが、完全一致ではないため、 sh.removeRangeFromZone()は何も削除しません。

シャーディングされたコレクションexampledb.collectionとシャードキーが{ a : 1, b : 1 }の場合、次の操作を実行すると下限が{ a : 1, b : 1}で上限が{ a : 10, b : 10 }の範囲が削除されます。

sh.removeRangeFromZone( "exampledb.collection",
{ a : 1, b : 1 },
{ a : 10, b : 10 }
)

前の例えの場合、下限が{ a : 1, b : 5 }で上限が{ a : 10, b : 1 }の既存の範囲が存在した場合、 に渡される最小値と最大値の正確な一致ではないため、操作はその範囲を削除しませsh.removeRangeFromZone()

戻る

sh.moveCollection

項目一覧