Docs Menu
Docs Home
/ /
particionado

sh.addTagRange() (método mongosh)

sh.addTagRange(namespace, minimum, maximum, tag)

Nota

Este método tiene un alias para sh.updateZoneKeyRange(). MongoDB proporciona fragmentación de zonas como sucesora de la fragmentación basada en etiquetas.

Adjunta un rango de valores de clave de fragmento a una etiqueta de fragmento creada mediante el sh.addShardTag() método.

Puede ejecutar el comando de base de datosupdateZoneKeyRangey sus ayudantessh.updateZoneKeyRange()ysh.addTagRange()en una colección no fragmentada o en una colección inexistente.

sh.addTagRange() toma los siguientes argumentos:

Parameter
Tipo
Descripción

namespace

string

El espacio de nombres de la colección particionada a etiquetar.

minimum

Documento

El valor mínimo del rango de claves de fragmento que se incluirá en la etiqueta. El mínimo es una coincidencia inclusiva. Especifique el valor mínimo en formato.<fieldname>:<value> Este valor debe ser del mismo tipo o tipos de BSON que la clave de fragmento.

maximum

Documento

El valor máximo del rango de claves de fragmento que se incluirá en la etiqueta. El máximo es una coincidencia exclusiva. Especifique el valor máximo en formato <fieldname>:<value>. Este valor debe ser del mismo tipo o tipos de BSON que la clave de fragmento.

tag

string

El nombre de la etiqueta a la que se adjuntará el rango especificado por los argumentos minimum y maximum.

Utilice para garantizar que el balanceador migre los documentos que existen dentro del rango especificado a un fragmento o conjunto de fragmentos sh.addShardTag() específicos.

Solo emite sh.addTagRange() cuando estés 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.

Los rangos de zona siempre incluyen el límite inferior y excluyen el límite superior.

Si está considerando fragmentar zonas en una colección vacía o inexistente, use para crear las zonas sh.addTagRange() y los rangos de zonas antes de fragmentar la colección. Crear zonas y rangos de zonas en colecciones vacías o inexistentes permite a MongoDB optimizar el proceso inicial de creación y distribución de fragmentos al fragmentar la colección. Este proceso optimizado permite una configuración más rápida de la fragmentación por zonas con menos sobrecarga del balanceador que crear zonas después de la fragmentación.El balanceador realiza toda la gestión de fragmentos después de la creación y distribución inicial optimizada de fragmentos.

Para obtener un ejemplo de cómo definir zonas y rangos de zonas para la distribución inicial de fragmentos, consulte Predefinir zonas y rangos de zonas para una colección vacía o inexistente.

MongoDB admite la fragmentación de colecciones en índices con hash compuesto. Al fragmentar la colección vacía o inexistente en una clave de fragmento con hash compuesto, MongoDB optimiza la creación y distribución inicial de fragmentos.

Si el campo hash es el prefijo de la clave de fragmento (es decir, el primer campo en la clave de fragmento), todo lo siguiente debe ser verdadero para que MongoDB realice la creación y distribución del fragmento inicial:

  • La colección tiene un rango de zona único con MinKey para todos los campos de límite inferior y MaxKey para todos los campos de límite superior.

  • sh.shardCollection() especifica la opción presplitHashedZones: true.

Si el campo con hash no es el prefijo de la clave de fragmento (es decir, la clave de fragmento tiene uno o más campos principales no con hash), todo lo siguiente debe ser verdadero para que MongoDB realice la creación y distribución del fragmento inicial:

  • La colección tiene un rango de zona para cada combinación de valores de campo de prefijo distintos (es decir, todos los campos que preceden al campo hash).

  • Para el límite inferior de cada rango de zona, especifique MinKey para el campo con hash y todos los campos subsiguientes.

  • Para cada rango de zona, al menos un campo de prefijo de límite superior debe ser diferente de su contraparte de límite inferior.

  • sh.shardCollection() especifica la opción presplitHashedZones: true.

Para obtener un ejemplo más completo de cómo definir zonas y rangos de zonas para la distribución inicial de fragmentos en una clave de fragmento con hash compuesto, consulte Predefinir zonas y rangos de zonas para una colección vacía o inexistente.

Al descartar una colección, se borran sus rangos de zona/etiqueta asociados.

En versiones anteriores, MongoDB no remueve las asociaciones de etiquetas de una colección descartada y, si luego creas una nueva colección con el mismo nombre, las asociaciones de etiquetas antiguas se aplicarán a la nueva colección.

Dada una clave de fragmento de {state: 1, zip: 1}, la siguiente operación crea un rango de etiquetas que cubre los códigos postales del estado de Nueva York:

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

Volver

sh.addShardToZone

En esta página