Definición
Compatibilidad
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.
Sintaxis
El comando tiene la siguiente sintaxis:
db.adminCommand( { configureCollectionBalancing: "<db>.<collection>", chunkSize: <num>, defragmentCollection: <bool> } )
Campos de comandos
configureCollectionBalancing tiene los siguientes campos:
Campo | Tipo | Descripción |
|---|---|---|
| string | Obligatorio: el nombre de la base de datos y la colección fragmentada que se va a configurar. |
| entero | Opcional: Establece el tamaño del fragmento en MiB para la colección. El tamaño recomendado es 256, 512 o mayor. |
| booleano | Opcional: hace que el balanceador desfragmente la colección. |
Para obtener más información, consulte Particionado de datos con fragmentos.
Comportamiento
No chunkSize se especificó ningunacolección
Si no especifica chunkSize para una colección y no se ha establecido ningún tamaño personalizado previamente, se utiliza el valor predeterminado global chunkSize para equilibrar.
Especificando chunkSize: 0
Si utiliza configureCollectionBalancing con,chunkSize: 0 se chunkSize restablece el valor chunkSize por recopilación y se utiliza el valor predeterminado global para equilibrar.
Para obtener más información sobre cómo configurar el valor chunkSize predeterminado, consulte Modificar el tamaño del rango en un clúster fragmentado.
Ejemplos
Configurar el tamaño del fragmento
Para cambiar el tamaño del fragmento de una colección fragmentada, utilice la opción chunkSize:
db.adminCommand( { configureCollectionBalancing: "test.students", chunkSize: 256 } )
Utilice este comando para cambiar el tamaño del fragmento para la colección dada.
Advertencia
De forma predeterminada, 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 del documento.
Para encontrar el tamaño promedio del documento, consulte el avgObjSize campo en la salida del db.collection.stats() método.
Para obtener más información,consulte Tamaño del rango.
Desfragmentar colecciones
Advertencia
No recomendamos utilizar defragmentCollection para desfragmentar colecciones particionadas para MongoDB 6.0.0 a 6.0.3 y MongoDB 6.1.0 a 6.1.1, ya que el proceso de desfragmentación en estas versiones puede hacer que las bases de datos y colecciones no estén disponibles durante períodos prolongados de tiempo.
Para indicarle al balanceador que desfragmente una colección fragmentada, use la opción defragmentCollection:
db.adminCommand( { configureCollectionBalancing: "test.students", defragmentCollection: true } )
Utilice este comando para que el balanceador desfragmente una colección fragmentada. Para supervisar el proceso de desfragmentación de fragmentos, utilice el balancerCollectionStatus comando.
Reconfigurar y desfragmentar colecciones
Para desfragmentar una colección particionada mientras actualizas el tamaño del fragmento, utiliza la opción defragmentCollection y la opción chunkSize juntas:
db.adminCommand( { configureCollectionBalancing: "test.students", chunkSize: 512, defragmentCollection: true } )