Hay varias pautas a tener en cuenta al diseñar la interacción de sus herramientas y clientes con MongoDB mediante disparadores. Tenga en cuenta estas pautas al decidir cómo estructurar las consultas, seleccionar las operaciones CRUD y de agregación que utilizará y determinar cómo gestionar las cargas de trabajo simultáneas.
Agregación
Los activadores admiten todos Etapas de la canalización de agregación en funciones del sistema excepto $currentOp y $indexStats.
Por razones de seguridad, solo un subconjunto de las etapas del proceso de agregación se admiten en las funciones de usuario.
Para obtener una lista de las etapas de la canalización que están disponibles y su contexto de función permitido, consulte Agregación.
Carga por lotes
Cuando se cargan datos en masa en MongoDB Atlas, es posible que observe una demora en la aparición de datos en los dispositivos mientras Atlas procesa los cambios.
Colecciones de series de tiempo
No se pueden definir desencadenadores de base de datos en colecciones de series temporales. Esto se debe a que estas aún no admiten flujos de cambios.
Clústeres Flex
No se pueden definir desencadenadores de base de datosen un clúster flexible. Esto se debe a que los clústeres flexibles no admiten flujos de cambios.
Instancias de bases de datos federadas
No se pueden definir activadores de base de datos en una instancia de base de datos federada porque las instancias de base de datos federada no admiten flujos de cambio.
Flujos de cambio
Atlas limita el número total de flujos de cambio abiertos en un clúster determinado según su tamaño. La siguiente tabla muestra las limitaciones para cada tamaño de clúster:
Tamaño del clúster | Número máximo de flujos de cambio |
|---|---|
Nivel gratuito ( | 5 |
Clústeres Flex | 10 |
Clústeres pequeños y dedicados ( | 100 |
Clústeres estándar ( | 1000 |
Clústeres estándar ( | 1000 |
Clústeres de alta potencia ( | 1000 |
Nota
Atlas abre un único flujo de cambio en cada colección que esté asociada con un disparador de base de datos.
Comandos de base de datos
Puede ejecutar un subconjunto limitado de comandos de base de datos al conectarse a un clúster de MongoDB mediante el protocolo de conexión. Para obtener una lista de los comandos compatibles, consulte Comandos de base de datos.
Nota
App Services no admite ningún comando de base de datos en Atlas Functions.
Requisitos de la versión de MongoDB
Puede acceder a la mayoría de las funciones de CRUD y agregación de MongoDB 3.6 versión. Sin embargo, los disparadores no son compatibles con todas las operaciones y funciones disponibles en las herramientas y clientes estándar. Para obtener una lista de las operaciones específicas de MongoDB disponibles al conectarse a MongoDB mediante disparadores, consulte la referencia de la API de CRUD y agregación.
Opciones de consulta
Los disparadores admiten todas las opciones de consulta en las funciones del sistema. Para obtener una lista de las opciones específicas disponibles al conectarse a MongoDB mediante disparadores, consulte Opciones de consulta.
Resultados de la consulta
Las consultas de MongoDB ejecutadas mediante disparadores pueden devolver un máximo de 50,000 documentos. Si necesita devolver más documentos, considere paginar su consulta.
Solicitar tráfico
Atlas limita el tráfico de solicitudes a los siguientes valores predeterminados:
10,000 solicitudes simultáneas. Cualquier solicitud que supere el límite de solicitudes simultáneas recibe un código de estado de respuesta HTTP (demasiadas 429 solicitudes).
Atlas puede gestionar solicitudes que superan con creces los límites anteriores. Sin embargo, estos límites se establecen para garantizar que las aplicaciones escalen responsablemente y para evitar ataques de denegación de servicio (DoS) y cargos de facturación no deseados.
Puede solicitar un límite superior enviando un ticket de soporte.
Agrupación de conexiones
Atlas utiliza la agrupación de conexiones para reducir la sobrecarga que supone abrir y cerrar conexiones con frecuencia entre solicitudes y ejecuciones de disparadores. Las conexiones se abren según sea necesario. La agrupación de conexiones depende de varios factores:
Nivel de clúster. Cuanto mayor sea el nivel del clúster, más conexiones estarán disponibles en el pool.
Modo de implementación. Las implementaciones globales utilizan varios servidores en cada región y, por lo tanto, cuentan con un grupo de conexiones más amplio.
Servicios. Cada servicio tiene un pool de conexiones independiente, por lo que la cantidad de servicios en tu aplicación no afecta el número de conexiones disponibles.