Restricciones operativas de particionado
Operaciones no disponibles en entornos fragmentados
$whereno permite referencias al db objeto desde la función. Esto es poco común en colecciones no $where fragmentadas.
El comando no se admite en entornos geoSearch fragmentados.
En MongoDB 5.0 y versiones anteriores, no se pueden especificar colecciones fragmentadas en el from parámetro de las $lookup etapas.
Operaciones de modificación de un solo documento en colecciones fragmentadas
Para utilizar las operaciones updateOne() y deleteOne() en una colección particionada que especifique la opción multi: false o justOne:
Si solo apunta a un fragmento, puede usar una clave de fragmentación parcial en la especificación de query o,
Puede proporcionar la clave de fragmentación o el campo
_iden la especificación de la query.
Para usar con una colección fragmentada, su filtro de consulta findOneAndUpdate() debe incluir una condición de igualdad en la clave de fragmento para comparar la clave y el valor en cualquiera de estos formatos:
{ key: value } { key: { $eq: value } }
Índices únicos en colecciones fragmentadas
MongoDB no admite índices únicos entre fragmentos, excepto cuando el índice único contiene la clave de fragmentación completa como prefijo del índice. En estas situaciones, MongoDB aplicará la unicidad en toda la clave, no en un solo campo.
Particionado de tamaño de datos de la colección existente
Una colección existente solo se puede fragmentar si su tamaño no supera los límites específicos. Estos límites se pueden estimar en función del tamaño promedio de todos los valores de clave de fragmentación y el tamaño del fragmento configurado.
Importante
Estos límites solo se aplican a la fragmentación inicial. Las colecciones fragmentadas pueden alcanzar cualquier tamaño después de habilitar la fragmentación correctamente.
MongoDB distribuye los documentos en la colección de modo que cada fragmento esté lleno hasta la mitad al crearse. Utilice las siguientes fórmulas para calcular el tamaño máximo teórico de la colección.
maxSplits = 16777216 (bytes) / <average size of shard key values in bytes> maxCollectionSize (MB) = maxSplits * (chunkSize / 2)
Nota
El tamaño máximo de documento BSON es de 16MB o 16777216 bytes.
Todas las conversiones deben utilizar la escala base2, por ejemplo, 1024 kilobytes = 1 megabytes.
Si maxCollectionSize es menor o casi igual al tamaño de la colección objetivo, aumente el tamaño del fragmento para garantizar una fragmentación inicial exitosa. Si tiene dudas sobre si el resultado del cálculo se acerca demasiado al tamaño de la colección objetivo, probablemente sea mejor aumentar el tamaño del fragmento.
Tras una fragmentación inicial exitosa, puede reducir el tamaño del fragmento según sea necesario. Si posteriormente reduce el tamaño del fragmento, puede que todos los fragmentos tarden un tiempo en dividirse al nuevo tamaño. Consulte "Modificar el tamaño del fragmento en un clúster fragmentado" para obtener instrucciones sobre cómo modificarlo.
Esta tabla ilustra los tamaños máximos aproximados de recolección utilizando las fórmulas descritas anteriormente:
Tamaño promedio de los valores de clave de fragmento | 512 bytes | 256 bytes | 128 bytes | 64 bytes |
|---|---|---|---|---|
Número máximo de divisiones | 32,768 | 65,536 | 131,072 | 262,144 |
Tamaño máximo de la colección (tamaño de fragmento de 64 MB) | 1 TB | 2 TB | 4 TB | 8 TB |
Tamaño máximo de la colección (tamaño de fragmento de 128 MB) | 2 TB | 4 TB | 8 TB | 16 TB |
Tamaño máximo de la colección (tamaño de fragmento de 256 MB) | 4 TB | 8 TB | 16 TB | 32 TB |