Por defecto, MongoDB potencialmente divide un fragmento sólo cuando se migren los datos que le pertenecen. Sin embargo, puede querer dividir los fragmentos manualmente si tiene una gran cantidad de datos en su clúster y muy pocos fragmentos, como suele ocurrir tras implementar un clúster utilizando datos existentes.
Para dividir fragmentos manualmente, utilice el split comando con los campos middle o find. mongosh proporciona los métodos asistentes sh.splitFind() y sh.splitAt().
splitFind() divide el fragmento que contiene el primer documento devuelto que coincide con esta consulta en dos fragmentos de igual tamaño. Se debe especificar el espacio de nombres completo (es decir. "<database>.<collection>") de la colección particionada a splitFind(). La consulta en splitFind() no necesita utilizar la clave de partición, aunque casi siempre tiene sentido hacerlo.
Ejemplo
El siguiente comando divide el fragmento que contiene el valor de 63109 para el campo zipcode en la colección people de la base de datos records:
sh.splitFind( "records.people", { "zipcode": "63109" } )
Utilice splitAt() para dividir un fragmento en dos, empleando el documento consultado como límite inferior en el nuevo fragmento:
Ejemplo
El siguiente comando divide el fragmento que contiene el valor de 63109 para el campo zipcode en la colección people de la base de datos records.
sh.splitAt( "records.people", { "zipcode": "63109" } )
Nota
splitAt() no necesariamente divide el fragmento en dos fragmentos de igual tamaño. La división ocurre en la ubicación del documento que coincide con la query, independientemente de dónde se encuentre ese documento en el fragmento.