Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ /

Visualizações

Nesta página

  • Casos de uso
  • Criar e gerenciar visualizações
  • Comparação com visualizações materializadas on-demand
  • Comportamento
  • Controle de acesso

Uma visualização do MongoDB é um objeto consultável somente para leitura cujo conteúdo é definido por um pipeline de agregação em outras coleções ou visualizações.

O MongoDB não persiste o conteúdo da visualização no disco. O conteúdo de uma visualização é computado sob-demanda quando um cliente consulta a visualização.

Observação

Desambiguação

Esta página discute visualizações padrão. Para discussões sobre visualizações materializadas on-demand, consulte Visualizações materializadas sob demanda.

Para entender as diferenças entre os tipos de visualização, consulte Comparação com Visualizações Materializadas On-Demand.

Você pode usar visualizações para:

Para saber como criar e gerenciar visualizações, consulte os seguintes recursos:

O MongoDB oferece dois tipos de visualização diferentes: visualizações padrão e visualizações materializadas on-demand. Ambos os tipos de exibição retornam os resultados de um aggregation pipeline.

  • As visualizações padrão são calculadas quando você lê a visualização e não são armazenadas no disco.

  • As visualizações materializadas sob demanda são armazenadas e lidas no disco. Eles usam um $merge ou $out estágio para atualizar os dados salvos.

    Observação

    Ao usar $merge, você pode usar change streams para observar alterações na visualização materializada. Ao usar $out, você não pode observar alterações na visualização materializada.

As visualizações padrão usam os índices da coleta subjacente. Como resultado , você não pode criar, eliminar ou reconstruir índices diretamente em uma visualização , nem obter uma lista de índices na visualização.

Você pode criar índices diretamente em visualizações materializadas sob demanda porque eles são armazenados em disco.

As visualizações materializadas sob demanda fornecem melhor desempenho de leitura do que as visualizações porque são lidas do disco em vez de computadas como partes da consulta. Esse benefício de desempenho aumenta com base na complexidade do pipeline e no tamanho dos dados que estão sendo agregados.

As seções a seguir descrevem o comportamento específico das visualizações.

As visualizações são somente leitura. As operações de gravação nas visualizações retornam um erro.

As visualizações não mantêm registros de data e hora das alterações da coleção e não são compatíveis com o isolamento de leituras pontuais ou de snapshots.

O aggregation pipeline subjacente da visualização está sujeito ao limite de memória de 100 megabytes para ordenador bloqueante e operações de grupo bloqueante.

A partir do MongoDB 6.0, os estágios do pipeline que exigem mais de 100 megabytes de memória para execução gravam arquivos temporários no disco por padrão. Esses arquivos temporários duram durante a execução do pipeline e podem influenciar o espaço de armazenamento na sua instância. Em versões anteriores do MongoDB, você deve passar { allowDiskUse: true } para find individuais e comandos aggregate para habilitar esse comportamento.

Somente find e aggregate comandos podem substituir o parâmetro allowDiskUseByDefault por um ou outro:

  • Usando { allowDiskUse: true } para permitir a gravação de arquivos temporários no disco quando allowDiskUseByDefault estiver definido como false

  • Usando { allowDiskUse: false } para proibir a gravação de arquivos temporários no disco quando allowDiskUseByDefault estiver definido como true

Observação

Para o MongoDB Atlas, é recomendável configurar o auto-scaling de armazenamento para evitar que queries de longa duração preencham o armazenamento com arquivos temporários.

Se o Atlas cluster usar auto-scaling de armazenamento, os arquivos temporários podem fazer com que o cluster seja dimensionado para o próximo nível de armazenamento.

  • Coleções de séries temporais são visualizações não materializadas graváveis. As limitações das visualizações se aplicam às coleções de séries temporais. Para obter mais informações, consulte Limitações das Coleções de séries temporais.

  • Você não pode criar uma visualização a partir de um namespace de collection de série temporal (ou seja, uma collection prefixada com system.buckets).

Aviso

Não tente criar uma coleção de séries temporais ou visualizar com o nome system.profile. MongoDB 6.3 e versões posteriores retornam um erro IllegalOperation se você tentar fazê-lo. Versões anteriores do MongoDB falham.

Se o sistema impuser autenticação:

  • Para criar uma visualização, você deve ter o privilégio createCollection no banco de dados de dados em que a visualização é criada. Além disso, se você tiver o privilégio find no namespace da visualização que deseja criar, também deverá ter o privilégio find nos seguintes recursos:

    • A coleção de origem ou visualização a partir da qual a nova visualização é criada.

    • Quaisquer collections ou visualizações referenciadas no pipeline de visualização.

  • Para executar query de uma visualização, você deve ter o privilégio find no namespace da visualização. Você não precisa do privilégio find na collection de origem ou em qualquer namespace referenciado no pipeline da visualização.

Um usuário com o papel readWrite embutido no banco de banco de dados tem os privilégios exigidos para executar as operações listadas. Para conceder as permissões necessárias:

Voltar

reconhecimento de data center e collection