Definición
sh.addTagRange(namespace, minimum, maximum, tag)Nota
Este método hace referencia a
sh.updateZoneKeyRange(). MongoDB proporciona particionado por zona como sucesor del particionado consciente de etiquetas.Anexa un rango de valores de la clave de partición a una etiqueta de partición creada mediante el método
sh.addShardTag().Se puede ejecutar el comando de base de datos
updateZoneKeyRangey sus asistentessh.updateZoneKeyRange()ysh.addTagRange()en una colección que no está particionada o en una colección que no existe.sh.addTagRange()toma los siguientes argumentos:ParameterTipoDescripciónnamespacestring
El espacio de nombres de la colección particionada a etiquetar.
minimumDocumento
El valor mínimo del rango de clave de partición que se debe incluir en la etiqueta. El mínimo es una coincidencia inclusiva. Especifique el valor mínimo en la forma de
<fieldname>:<value>. Este valor debe ser del mismo tipo BSON o tipos que la clave de partición.maximumDocumento
El valor máximo del rango de clave de partición para incluir en la etiqueta. El máximo es una coincidencia exclusiva. Especifica el valor máximo en la forma de
<fieldname>:<value>. Este valor debe ser del mismo tipo BSON o tipos que la clave de partición.tagstring
El nombre de la etiqueta para adjuntar el rango especificado por los argumentos
minimumymaximum.Utiliza
sh.addShardTag()para asegurarte de que el balanceador migre los documentos que existen dentro del rango especificado a una partición o conjunto de particiones específicos.Solo emite
sh.addTagRange()cuando estés conectado a una instanciamongos.
Compatibilidad
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.
Comportamiento
Límites
Los rangos de zona siempre incluyen el límite inferior y excluyen el límite superior.
Distribución inicial de fragmentos para colecciones vacías o inexistentes
Si está considerando realizar particionado de zonas en una colección vacía o inexistente, utilice sh.addTagRange() para crear las zonas y rangos de zonas antes de particionar la colección. Crear zonas y rangos de zonas en colecciones vacías o no existentes permite a MongoDB optimizar el proceso inicial de creación y distribución de fragmentos al dividir la colección. Este proceso optimizado admite una configuración más rápida de particionado zonificado con menos sobrecarga de balanceador que crear zonas después del particionado. El balanceador realiza toda la gestión de fragmentos después de la optimización creación y distribución inicial de fragmentos.
Para un ejemplo de cómo definir zonas y rangos de zonas para la distribución inicial de fragmentos, consulta Predefinir Zonas y Rangos de Zonas para una Colección Vacía o Inexistente.
Distribución inicial de fragmentos con claves de partición compuestas con hash
MongoDB ofrece soporte al particionado de colecciones en índices compuestos encriptados. MongoDB puede realizar una creación y distribución optimizadas de particiones iniciales al fragmentar la colección vacía o inexistente usando una clave de partición compuesta con hash.
Si el campo encriptada es el prefijo de la clave de partición (es decir, el primer campo en la clave de partición), todo lo siguiente debe ser cierto para que MongoDB realice la creación inicial y la distribución de fragmentos:
La colección tiene un único rango de zona con
MinKeypara todos los campos límite inferior yMaxKeypara todos los campos límite superior.sh.shardCollection()especifica la opción presplitHashedZones: true.
Si el campo encriptado no es el prefijo de la clave de partición (es decir, la clave de partición tiene uno o más campos iniciales no encriptados), deben cumplirse todas las siguientes condiciones para que MongoDB realice la creación y distribución inicial de fragmentos:
La colección tiene un rango de zona para cada combinación de valores de campo de prefijo distintos (es decir, todos los campos anteriores al campo encriptado).
Para el límite inferior de cada rango de zona, especifica
MinKeypara el campo encriptada y todos los campos posteriores.Para cada rango de zona, al menos un campo de prefijo de límite superior debe diferir de su equivalente en el límite inferior.
sh.shardCollection()especifica la opción presplitHashedZones: true.
Para obtener un ejemplo más completo de la definición de zonas y rangos de zonas para la distribución inicial de fragmentos con unas claves de partición compuestas con hash, consulte Predefinición de zonas y rangos de zonas para una colección vacía o inexistente.
Colecciones descartadas
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.
Ejemplo
Dada una clave de partición 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" )