Hay varias directrices a tener en cuenta al estructurar cómo interactúan tus herramientas y clientes con MongoDB a través de Triggers. Ten en cuenta esta orientación al decidir cómo estructurar queries, seleccionar las operaciones CRUD y de agregación adecuadas, 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 por $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 pipeline que están disponibles y su contexto de función permitido, consulta agregación.
Carga por lotes
Cuando se cargan datos en bloque o agrupar en MongoDB Atlas, puede haber un retraso en la aparición de los 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 puedes definir activadores de base de datos en un clúster flexible. Esto se debe a que los clústeres flexibles no soportan cambios de flujo.
instancia federada de base de datos
No puede definir activador de base de datos en una instancia federada de base de datos porque las instancias de base de datos federada no soportan streams de cambios.
Flujos de cambio
Atlas limita el número total de flujos de cambios abiertos en un clúster determinado en función del tamaño del clúster. La siguiente tabla muestra las limitaciones para cada tamaño de clúster:
Tamaño de clúster | Número máximo de flujos de cambios |
|---|---|
clúster gratuito | 5 |
Clústeres Flex | 10 |
Pequeños, Clústeres Dedicados ( | 100 |
Clústeres estándar ( | 1000 |
Clusters 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 Funciones.
Requisitos de la versión de MongoDB
Puedes acceder a la mayor parte de la funcionalidad CRUD y de Agregación de MongoDB versión 3.6. Sin embargo, Triggers no admite todas las operaciones y funcionalidades disponibles en las herramientas y clientes estándar. Para obtener una lista de operaciones específicas de MongoDB que están disponibles cuando te conectas a MongoDB a través de Triggers, consulta la referencia de la API CRUD y Agregación.
Opciones de query
Los triggers admiten todas las opciones de query en funciones de sistema. Para obtener una lista de las opciones específicas disponibles cuando se conecta a MongoDB a través de Triggers, consulte la Opciones de Query.
Resultados de la consulta
Las consultas de MongoDB ejecutadas a través de Triggers pueden devolver un máximo de 50,000 documentos. Si necesitas devolver más documentos, considera paginar tu query.
Tráfico de solicitud
Atlas limita el tráfico de solicitudes a los siguientes valores predeterminados:
10,000 solicitudes concurrentes. Cualquier solicitud realizada que supere el límite de solicitudes concurrentes recibe un código de estado HTTP de 429 - Demasiadas Solicitudes.
Atlas puede gestionar solicitudes muchas veces mayores que los límites mencionados anteriormente. Sin embargo, estos límites se establecen para garantizar que las aplicaciones escalen de manera responsable y para prevenir ataques DOS y cargos de facturación no intencionados.
Puede solicitar un límite superior enviando un ticket de soporte.
agrupamiento de conexiones
Atlas utiliza un agrupamiento de conexiones para reducir la sobrecarga que supone abrir y cerrar conexiones con frecuencia entre peticiones y ejecuciones de activador. Las conexiones se abren según sea necesario. El agrupamiento 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.