El pipeline de agregación admite operaciones en sharded colección. Esta sección describe los comportamientos específicos del pipeline de agregación y de las colecciones particionadas.
Comportamiento
Si el pipeline comienza con un valor exacto $match en una clave de partición, y el pipeline no contiene etapas $out ni $lookup, el pipeline completo se ejecuta solo en la partición coincidente.
Cuando las operaciones de agregación se ejecutan en múltiples particiones, los resultados se redirigen al mongos para ser combinados, salvo en los siguientes casos:
Si el pipeline incluye las etapas
$outo$lookup, la fusión se ejecuta en la partición primaria.Si la canalización incluye una etapa de clasificación o agrupación, y la configuración allowDiskUse está habilitada, la fusión se ejecuta en un fragmento seleccionado aleatoriamente.
Optimización
Al dividir la pipeline de agregación en dos partes, esta se divide para asegurar que las particiones realicen la mayor cantidad posible de etapas, considerando la optimización.
Para ver cómo se dividió la explain pipeline, incluya la opción en el método db.collection.aggregate().
Las optimizaciones están sujetas a cambios entre versiones.