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
/ /

moveRange (comando de base de datos)

moveRange

Novedades en la versión 6.0.

mueve rangos entre fragmentos. Ejecutar el moveRange Comando con una instancia mientras se utiliza la mongos basede datos de administración.

Tip

En mongosh, este comando también se puede ejecutar a través del método asistente sh.moveRange().

Los métodos asistente son convenientes para usuarios de mongosh, pero es posible que no proporcionen el mismo nivel de información que los comandos de base de datos. En los casos en que no se necesite la conveniencia o se requieran campos de retorno adicionales, utiliza el comando de base de datos.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

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

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte 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.

El comando tiene la siguiente sintaxis:

db.adminCommand(
{
moveRange: <namespace>,
toShard: <ID of the recipient shard>,
min: <min key of the range to move>, // conditional
max: <max key of the range to move>, // conditional
forceJumbo: <bool>, // optional
writeConcern: <write concern>, // optional
secondaryThrottle: <bool> // optional
}
)

Nota

Utilice el comando para recuperar el ID del fragmento del listShards destinatario.

El comando toma los siguientes campos:

Campo
Tipo
Descripción

toShard

string

ID de la partición receptora.

min

llave

Clave mínima del rango a mover. Obligatorio si no especifica max.

Si no especificas min, dado un fragmento C donde max sea el límite superior exclusivo de C o C incluya la clave de partición max, min se determina de la siguiente manera:

  • Si el tamaño de los datos del rango entre min(C) y max es menor que el tamaño de fragmento por colección o el tamaño de fragmento por defecto, el valor min del fragmento se selecciona como min = min(C).

  • De lo contrario, clave min > min(C) donde min depende del tamaño de fragmento configurado.

max

llave

Clave máxima del rango a mover. Obligatorio si no se especifica min.

Si no se especifica max, dado un fragmento C que incluye la clave de partición min, max se determina de la siguiente manera:

  • Si el tamaño de los datos del rango entre min y max(C) es menor que el tamaño del fragmento por recopilación o el tamaño del fragmento predeterminado, el máximo del fragmento se selecciona como max = max(C).

  • Si no, clave max < max(C) donde max depende del tamaño de fragmento configurado.

booleano

Opcional.

Indicador que determina si el comando puede mover un rango demasiado grande para migrar. El rango puede estar o no etiquetado como jumbo.

  • Si true, el comando puede mover el rango.

  • Si false, el comando no puede mover el rango.

El valor es por defecto false.

ADVERTENCIA:

El comando moveRange con forceJumbo=true bloquea las operaciones de guardado en la colección.

Esta opción provoca que la partición migre fragmentos, incluso cuando son más grandes que el tamaño de fragmento configurado. La colección permanece no disponible para guardados durante la migración.

Para migrar estos grandes fragmentos sin este largo período de bloqueo, consulta Balancear rangos que exceden el límite de tamaño en su lugar.

writeConcern

Documento

Opcional.

Documento con la inquietud escrita.

El valor por defecto es w: majority.

secondaryThrottle

booleano

Opcional.

  • Si true, cada movimiento de documentos durante la migración de fragmentos se propaga al menos a un secundario antes de que el balanceador proceda con el siguiente documento. Esto equivale a un nivel de confirmación de escritura (write concern) de { w: 2 }.

    Utiliza la opción writeConcern para especificar un nivel de confirmación de escritura (write concern) diferente.

  • Si false, el balanceador no espera la replicación en un secundario y continúa con el siguiente documento.

Para obtener más información, consulte Acelerador secundario.

La sección Migración de rango describe cómo se mueven los rangos entre particiones en MongoDB.

Utilice solo en escenarios moveRange como:

  • una ingesta inicial de datos

  • una gran operación de importación a granel

Permitir que el equilibrador cree y equilibre rangos en clústeres fragmentados en la mayoría de los casos.

Los siguientes ejemplos usan una colección con:

  • clave de partición x

  • Tamaño de fragmento configurado de 128 MB

  • Un fragmento con delimitaciones: [x: 0, x: 100)

La siguiente tabla enumera los resultados de configurar min y max con varios valores:

min
max
Resultado

0

100

Mueve todos los documentos del rango a la partición destinataria.

10

30

Crea tres subrangos:

  • [x: 0, x: 10)

  • [x: 10, x: 30)

  • [x: 30, x: 100)

Mueve todos los documentos de [x: 10, x: 30) a la partición receptora.

0

20

Crea dos subrangos:

  • [x: 0, x: 20)

  • [x: 20, x: 100)

Mueve todos los documentos de [x: 0, x: 20) a la partición receptora.

40

100

Crea dos subrangos:

  • [x: 0, x: 40)

  • [x: 40, x: 100)

Mueve todos los documentos de [x: 40, x: 100) a la partición receptora.

La siguiente tabla enumera los resultados de establecer min en varios valores:

min
Cantidad de datos en el rango de claves
Resultado

0

Menos de 128 MB contenidos entre las claves x: 0 y x: 100.

Mueve todos los documentos del rango a la partición destinataria.

10

Menos de 128 MB contenidos entre las claves x: 0 y x: 100.

Crea dos subrangos:

  • [x: 0, x: 10)

  • [x : 10, x: 100)

Mueve todos los documentos en [x: 10, x: 100) a la partición de destino.

10

128 MB contenidos entre las claves x: 10 y x: 30.

Crea tres subrangos:

  • [x: 0, x: 10)

  • [x: 10, x: 30)

  • [x: 30, x: 100)

Mueve todos los documentos en [x: 10, x: 30) a la partición de destino.

La siguiente tabla enumera los resultados de establecer max en varios valores:

max
Cantidad de datos en el rango de claves
Resultado

100

Menos de 128 MB contenidos entre las claves x: 0 y x: 100.

Mueve todos los documentos del rango a la partición destinataria.

10

Menos de 128 MB contenidos entre las claves x: 0 y x: 100.

Crea dos subrangos:

  • [x: 0, x: 10)

  • [x : 10, x: 100)

Mueve todos los documentos en [x: 0, x: 10) a la partición de destino.

30

128 MB contenidos entre las claves x: 10 y x: 30.

Crea tres subrangos:

  • [x: 0, x: 10)

  • [x: 10, x: 30)

  • [x: 30, x: 100)

Mueve todos los documentos en [x: 10, x: 30) a la partición de destino.

Volver

movePrimary

En esta página