Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

sh.removeRangeFromZone() (método de mongosh)

sh.removeRangeFromZone(namespace, minimum, maximum)

Elimina la asociación entre un rango de valores de la clave de partición y un zona.

sh.removeRangeFromZone() requiere los siguientes campos:

Parameter
Tipo
Descripción

namespace

string

El espacio de nombres de la colección particionada a asociar con la zona.

La colección debe estar particionada para que la operación tenga éxito.

minimum

Documento

El límite inferior inclusivo del rango de valores de la clave de partición.

Especifique cada campo de la clave de partición en la forma de <fieldname> : <value>. El valor debe ser del mismo tipo BSON o tipos que la clave de partición.

maximum

Documento

El límite superior exclusivo del rango de valores de la clave de partición.

Especifique cada campo de la clave de partición en la forma de <fieldname> : <value>. El valor debe ser del mismo tipo BSON o tipos que la clave de partición.

Usa sh.removeRangeFromZone() para remover la asociación entre rangos de claves de partición no utilizados, obsoletos o en conflicto y una zona.

Si ningún rango coincide con los límites máximos y mínimos pasados a sh.removeRangeFromZone(), no se elimina nada.

Ejecutar sh.removeRangeFromZone() solamente cuando esté conectado a una instancia mongos.

Este método está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Importante

Este comando no es compatible con los clústeres M0 y Flex. Para obtener más información, consulta Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

sh.removeRangeFromZone() no elimina la asociación entre una zona y una partición. Tampoco remueve la propia zona.

Consulte la página del manual de zonas para obtener más información sobre las zonas en clústeres particionados.

Eliminar la asociación entre un rango y una zona elimina las restricciones que mantienen los fragmentos cubiertos por el rango en las particiones dentro de esa zona. Durante la próxima ronda del equilibrador, este puede migrar fragmentos que anteriormente estaban cubiertos por la zona.

Consulta la documentación del balanceador de clusters fragmentados para obtener más información sobre cómo funcionan las migraciones en un cluster fragmentado.

Para los clústeres particionados que se ejecutan con autenticación, debes autenticarte como:

  • un usuario cuyos privilegios incluyen las acciones especificadas en varias colecciones de la base de datos config:

    o, alternativamente

  • un usuario cuyos privilegios incluyan enableSharding sobre el recurso clúster.

Los clusterAdmin o los clusterManager roles integrados tienen los permisos apropiados para ejecutar sh.removeRangeFromZone(). Consulta la página de documentación sobre Control de acceso basado en roles para más información.

Dada una colección particionada exampledb.collection con una clave de partición { a : 1 }, la siguiente operación elimina el rango con un límite inferior de 1 y un límite superior de 10:

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

El min y el max deben coincidir exactamente con los límites del rango objetivo. La siguiente operación intenta remover el rango creado previamente, pero especifica { a : 0 } como el límite min:

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

Si bien el rango de { a : 0 } y { a : 10 } abarca el rango existente, no es una coincidencia exacta y, por lo tanto, sh.removeRangeFromZone() no elimina nada.

Dada una colección particionada exampledb.collection con una clave de partición { a : 1, b : 1 }, la siguiente operación elimina el rango con un límite inferior de { a : 1, b : 1} y un límite superior de { a : 10, b : 10 }:

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

En el ejemplo anterior, si existía un rango previo con un límite inferior de { a : 1, b : 5 } y un límite superior de { a : 10, b : 1 }, la operación no removería ese rango, ya que no es una coincidencia exacta con el mínimo y máximo pasados a sh.removeRangeFromZone().

Volver

sh.moveRange

En esta página