Limitações de gatilhos
Nesta página
Há várias diretrizes a serem lembradas ao projetar como suas ferramentas e clientes interagem com o MongoDB por meio de gatilhos. Tenha em mente essa orientação ao decidir como estruturar as queries, selecionar quais operações CRUD e de agregação usar e determinar como lidar com cargas de trabalho simultâneas.
Agregação
Os gatilhos suportam todosos estágios do pipeline de agregação em funções do sistema, exceto $currentOp
e $indexStats
.
Por motivos de segurança, somente um subconjunto de aggregation pipeline stages é aceito em funções do usuário.
Para obter uma lista de estágios de pipeline disponíveis e seu contexto da função permitido, consulte Agregação.
Carregamento em lote
Quando os dados são carregados em massa/ lote no MongoDB Atlas, você pode ver um atraso na exibição de dados nos dispositivos enquanto o Atlas processa as alterações.
Coleções de Time Series
Não é possível definir gatilhos de banco de dados em coleções de séries temporais. Isso ocorre porque as coleções de séries temporais ainda não aceitam change streams.
Instâncias sem servidor
Não é possível definir gatilhos de banco de dados em uma instância sem servidor. Isso ocorre porque as instâncias sem servidor não oferecem suporte a change streams.
Instâncias do banco de dados federado
Você não pode definir gatilhos de banco de dados em uma instância do banco de dados federado. Isso ocorre porque as instâncias do banco de dados de dados federado não oferecem suporte a change streams.
Fluxos de alterações
O Atlas limita o número total de fluxos de alterações abertos em um determinado cluster com base no tamanho do cluster. A tabela a seguir lista as limitações para cada tamanho de cluster:
Tamanho do cluster | Número máximo de fluxos de mudança |
---|---|
Nível gratuito ( M0 ) | 5 |
Clusters compartilhados ( M2 /M5 ) | 10 |
Cluster pequenos e dedicados ( M10 /M20 ) | 100 |
Agrupamentos padrão ( M30 /M40 ) | 1000 |
Clusters padrão ( M50 - M90 ) | 1000 |
Clusters de alta potência ( M100+ ) | 1000 |
Observação
Atlas abre um único fluxo de alteração em cada coleção associada a um gatilho de banco de dados ( trigger).
Comandos de banco de dados
Você pode chamar um subconjunto limitado de comandos de banco de dados de dados quando conectado a um cluster MongoDB pelo protocolo de conexão. Para obter uma lista dos comandos suportados, consulte Comandos do banco de dados.
Observação
o App Services não suporta quaisquer comandos do banco de dados de dados no Atlas Functions.
Requisitos da versão do MongoDB
Você pode acessar a maior parte da funcionalidade CRUD e Agregação do MongoDB versão 3.6. No entanto, os Triggers não oferecem suporte a todas as operações e recursos disponíveis em ferramentas e clientes padrão. Para obter uma lista de operações específicas do MongoDB que estão disponíveis quando você se conecta ao MongoDB por meio de Triggers, consulte a referência da API de agregação CRUD & .
Opções de query
Os gatilhos suportam todas as opções de consulta em funções do sistema. Para obter uma lista de opções específicas disponíveis quando você se conecta ao MongoDB por meio de triggers, consulte Opções de query.
Resultados da query
As queries do MongoDB executadas por meio de triggers podem retornar um máximo de 50,000 documentos. Se precisar retornar mais documentos, recomendamos paginar sua query.
Solicitar tráfego
Os limites do Atlas solicitam tráfego para os seguintes padrões:
10,000 solicitações simultâneas. Todas as solicitações feitas além do limite de solicitações simultâneas recebem um código de status de resposta HTTP de 429 - Excesso de solicitações.
O Atlas pode lidar com solicitações muito superiores aos limites acima. No entanto, esses limites são implementados para garantir que os aplicativos sejam dimensionados com responsabilidade e evitar ataques de DNS e cobranças de cobrança não intencionais.
Você pode solicitar um limite maior enviando um ticket de suporte.
Pool de conexões
O Atlas usa o pool de conexões para reduzir a sobrecarga de abrir e fechar conexões com frequência entre solicitações e execuções de trigger . As conexões são abertas conforme necessário. O pooling de conexões depende de vários fatores:
Camada do cluster. Quanto maior a camada de cluster, mais conexões disponíveis no pool.
Modo de sistema. Sistemas globais usam diversos servidores em cada região e, portanto, possuem um pool de conexões geral maior.
Serviços. Cada serviço tem um pool de conexões independente, portanto, o número de serviços em seu aplicativo não afeta o número de conexões disponíveis.