Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Limites de Pipeline de Agregação

Nesta página

  • Restrições de tamanho de resultado
  • Restrições do número de estágios
  • Restrições de memória

Operações de agregação com o comando aggregate têm as seguintes limitações.

O comando aggregate pode retornar um cursor ou armazenar os resultados em uma coleta. Cada documento no conjunto de resultados está sujeito ao limite de tamanho de documento JSON de 16 megabytes. Se qualquer documento exceder o limite de Tamanho de Documento JSON, a agregação produz um erro. O limite aplica-se apenas aos documentos devolvidos. Durante o processamento do pipeline, os documentos podem exceder esse tamanho. O método db.collection.aggregate() retorna um cursor por padrão.

Alterado na versão 5,0: MongoDB 5,0 limita o número de estágios de pipeline de agregação permitidos em um único pipeline para 1000.

Cada estágio individual do pipeline tem um limite de 100 megabytes de RAM. Por padrão, se um estágio exceder esse limite, o MongoDB produz um erro. For some pipeline stages you can allow pipeline processing to take up more space by using the allowDiskUse option to enable aggregation pipeline stages to write data to temporary files.

O estágio de agregação $search não está restrito a 100 megabytes de RAM porque é executado em um processo separado.

Exemplos de estágios que podem ser transferidos para o disco quando allowDiskUse é true são:

Observação

Os estágios de pipeline operam em fluxos de documentos, em que cada estágio de pipeline recebe documentos, processa-os e, em seguida, gera os documentos resultantes.

Alguns estágios podem não gerar documentos até que tenham processado todos os documentos recebidos. Esses estágios do pipeline devem armazenar os resultados na memória RAM até que todos os documentos recebidos sejam processados. Como resultado, estes estágios do pipeline podem exigir mais espaço do que o limite de 100 MB.

Se os resultados de um dos seus $sort estágios do pipeline excederem o limite, considere adicionar um estágio $limit.

A partir do MongoDB 4.2, as mensagens de registro do criador de perfil e as mensagens de registro de diagnóstico incluem um indicador usedDisk se algum estágio de agregação gravou dados em arquivos temporários devido a restrições de memória.

← Otimização de aggregation pipeline