A partir de MongoDB 8.0, puede desfragmentar una colección fragmentada mediante el uso de
unshardCollection Comando. Al desfragmentar una colección, MongoDB mueve los datos de la colección a un único fragmento y actualiza los metadatos para reflejar el estado desfragmentado.
Sintaxis del comando
Para desfragmentar una colección, utilice el unshardCollection comando:
db.adminCommand({ unshardCollection : "<database>.<collection>", toShard : "<recipient shard ID>" })
Casos de uso
Un usuario puede desfragmentar una colección si:
Puedes almacenar la colección completa en un solo fragmento.
La colección requiere aislamiento de recursos, y los patrones de acceso se soportan mejor si reside en un único fragmento. Para cumplir los mismos requisitos en una colección fragmentada, consulte Fragmentación de zonas.
La colección se particionó anteriormente, pero ya no es necesario que esté particicionada.
Empezar
Control de acceso
Si su implementación tiene habilitado el control de acceso, el rol le otorga acceso para ejecutar enableSharding el unshardCollection comando.
Detalles
Los datos de una colección no fragmentada solo residen en un fragmento y la clave de fragmento se elimina. Las colecciones que se desfragmentan manualmente se comportan igual que las colecciones recién creadas que nunca se fragmentaron.
Puede especificar el fragmento de destino con el campo opcional toShard. Si no especifica un fragmento de destino, MongoDB seleccionará automáticamente el fragmento con la menor cantidad de datos.