Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

moveChunk (comando de base de datos)

moveChunk

Internal administrative command. Moves chunks between shards. Issue the moveChunk command via a mongos instance while using the admin database. Use the following forms:

Tip

In mongosh, this command can also be run through the sh.moveChunk() helper method.

Helper methods are convenient for mongosh users, but they may not return the same level of information as database commands. In cases where the convenience is not needed or the additional return fields are required, use the database command.

db.adminCommand( { moveChunk : <namespace> ,
find : <query> ,
to : <string>,
forceJumbo: <boolean>,
_secondaryThrottle : <boolean>,
writeConcern: <document>,
_waitForDelete : <boolean> } )

Alternativamente:

db.adminCommand( { moveChunk : <namespace> ,
bounds : <array> ,
to : <string>,
forceJumbo: <boolean>,
_secondaryThrottle : <boolean>,
writeConcern: <document>,
_waitForDelete : <boolean> } )

The moveChunk command has the following fields:

Campo
Tipo
Descripción

moveChunk

string

El namespace de la colección donde existe el fragmento. Especifica el namespace completo de la colección, incluyendo el nombre de la base de datos.

find

Documento

Una coincidencia exacta en la clave de partición que especifica el valor de la clave de partición del fragmento a mover. Especifique el campo bounds o el campo find, pero no ambos. No utilice el find campo para seleccionar fragmentos en colecciones que utilicen una clave de partición con hash.

bounds

arreglo

Los límites de un determinado fragmento para mover. El arreglo debe consistir en dos documentos que especifiquen los valores inferior y superior del valor de la clave de partición de un fragmento a mover. Especifica el campo bounds o el campo find, pero no ambos. Utilice bounds para seleccionar fragments en colecciones que utilizan una clave de partición con hash.

to

string

El nombre de la partición de destino para el fragmento.

booleano

opcional. Una bandera que determina si el comando puede mover un fragmento que es demasiado grande para migrar. La fragmento puede estar marcada o no como jumbo.

  • Si true, el comando puede mover el fragmento.

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

El valor es por defecto false.

ADVERTENCIA:

El comando moveChunk 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.

_secondaryThrottle

booleano

opcional. Para WiredTiger, por defecto es false.

  • Si true, por defecto, cada movimiento de documento durante la migración de fragmentos se propaga al menos a un secundario antes de que el balanceador continúe con el siguiente documento. Esto es equivalente 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.

writeConcern

Documento

opcional. Un documento que expresa el nivel de confirmación de escritura (write concern) que el _secondaryThrottle utilizará para esperar a los secundarios durante la migración de fragmentos.

writeConcern requiere _secondaryThrottle: true.

_waitForDelete

booleano

Optional. If set to true, the delete phase of a moveChunk operation is blocking. _waitForDelete defaults to false.

Cuando el campo _waitForDelete está configurado, MongoDB no espera el retraso orphanCleanupDelaySecs antes de realizar el borrado de rango. Si utiliza el parámetro _waitForDelete y hay operaciones de lectura en réplicas secundarias, es posible que la lectura omita documentos debido a la fase de borrado de la migración.

El valor de bounds toma la forma:

[ { hashedField : <minValue> } ,
{ hashedField : <maxValue> } ]

La sección Migración de fragmentos describe cómo se mueven los fragmentos entre las particiones de MongoDB.

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

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
  • 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.

Only use the moveChunk in special circumstances such as preparing your sharded cluster for an initial ingestion of data, or a large bulk import operation. In most cases allow the balancer to create and balance chunks in sharded clusters. See Create Ranges in a Sharded Cluster for more information.

moveChunk requires that all indexes exist on the target (i.e. to ) shard before migration and returns an error if a required index does not exist.

moveChunk returns the following error message if another metadata operation is in progress on the chunks collection:

errmsg: "The collection's metadata lock is already taken."

If another process, such as a balancer process, changes meta data while moveChunk is running, you may see this error. You may retry the moveChunk operation without side effects.

A partir de MongoDB,5.0 puede maxCatchUpPercentageBeforeBlockingWrites configurar el para especificar el porcentaje máximo permitido de datos que aún no se han migrado durante una moveChunk operación en comparación con el tamaño total (en MB) del fragmento que se está transfiriendo.