Definición
sh.moveChunk(namespace, query, destination)Mueve el fragmento que contiene el documento especificado por el
querydestinationfragmento al.sh.moveChunk()proporciona un contenedor alrededor delmoveChunkcomando de base de datos.Importante
En la mayoría de las circunstancias, permita que el balanceador migre fragmentos automáticamente y evite llamar a
sh.moveChunk()directamente.Advertencia
Este comando no se puede usar para claves de fragmento con hash, ya que utiliza la
findopción del comando. Para movermoveChunkun fragmento con una clave de fragmento con hash, utilice el comando especificandomoveChunkelboundscampo.Importante
Método mongosh
Esta página documenta un método
mongosh. Esta no es la documentación para los comandos de base de datos ni para los drivers específicos de lenguajes, como Nodo.js.Para el comando de base de datos, consulta el comando
moveChunk.Para los drivers de API de MongoDB, consulte la documentación del driver de MongoDB específica del lenguaje.
sh.moveChunk()toma los siguientes argumentos:ParameterTipoDescripciónnamespacestring
El espacio de nombres de la colección fragmentada que contiene el fragmento que se va a migrar.
queryDocumento
Una coincidencia exacta en la clave de partición que selecciona el fragmento a mover.
destinationstring
El ID del fragmento del destinatario.
Nota
Utilice el comando para recuperar el ID del fragmento del
listShardsdestinatario.Por defecto, MongoDB no puede mover un fragmento si la cantidad de documentos en el fragmento es mayor que 2 veces el resultado de dividir el tamaño del fragmento configurado por el tamaño promedio de los documentos. El comando
moveChunkpuede especificar la opción forceJumbo para permitir la migración manual de fragmentos demasiado grandes para mover, con o sin la etiqueta jumbo. Consulta el comando moveChunk para más detalles.
Tip
Fragmentacióny migración de fragmentos
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.
Ejemplo
Dada la colección people en la base de datos records, la siguiente operación encuentra el fragmento que contiene los documentos con el campo zipcode establecido en 53187 y luego mueve ese fragmento al fragmento llamado shard0019:
sh.moveChunk("records.people", { zipcode: "53187" }, "shard0019")