Las consultas de búsqueda de MongoDB se ejecutan dentro de un etapa de canalización de agregación, que es el método preferido para realizar agregaciones.
Las operaciones de agregación procesan múltiples documentos y devuelven resultados calculados. Puede utilizar operaciones de agregación para:
Agrupa valores de varios documentos.
Realiza operaciones sobre los datos agrupados para devolver un único resultado.
Analiza los cambios en los datos con el tiempo.
Puedes utilizar cualquiera de los dos $searcho la etapa como la primera etapa en el proceso de $searchMeta agregación.
Etapa de la canalización de agregación | Descripción |
|---|---|
Realiza búsquedas de texto completo y devuelve una lista ordenada de documentos junto con metadatos de búsqueda adicionales. Se puede usar | |
Realiza búsquedas de texto completo y devuelve los metadatos sin obtener los documentos. Se puede utilizar |
Una vez completada la etapa $search o la etapa $searchMeta, se pueden usar etapas de agregación adicionales para procesar más documentos. Por ejemplo, se pueden usar una o más de las siguientes etapas, además de otras etapas:
Etapa de la canalización de agregación | Descripción |
|---|---|
Limita el número de documentos que se pasan a la siguiente etapa en el pipeline. | |
Omite los documentos que pasan a la etapa y pasa los documentos restantes a la siguiente etapa en el pipeline. | |
Pasa los documentos con los campos solicitados a la siguiente etapa en el pipeline. | |
Agrega nuevos campos a los documentos. | |
Procesa múltiples pipelines de agregación dentro de una sola etapa en el mismo conjunto de documentos de entrada. | |
Filtra documentos según un predicado de query específico y pasa los documentos coincidentes a la siguiente etapa del pipeline. | |
Combina documentos con los mismos campos o expresión en un solo documento mediante una clave de grupo. | |
Realiza una unión externa izquierda con una colección en la misma base de datos para filtrar documentos de la colección “unida” para su procesamiento. |
Cuando se agreguen estas etapas al pipeline de agregación, se debe considerar el impacto potencialmente significativo en el rendimiento.
Para mejorar el rendimiento, recomendamos que se utilicen $limit para los resultados de búsqueda, que se paginen según sea necesario y que se recuperen los resultados tras un punto de referencia.