Uma visualização do MongoDB é um objeto consultável somente para leitura cujo conteúdo é definido por um aggregation pipeline em outras collections 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.
To understand the differences between the view types, see Comparison with On-Demand Materialized Views.
Casos de uso
Você pode usar visualizações para:
Crie uma visualização de uma coleção de dados de funcionários para excluir qualquer informação de identificação pessoal (PII).
Crie uma visualização em uma coleções de dados de sensores para adicionar campos e métricas computados.
Crie uma visualização que una duas collections contendo estoque e histórico de pedidos. Seu aplicativo pode consultar a visualização sem gerenciar ou o pipeline subjacente.
Create a MongoDB Search or MongoDB Vector Search index on a view to partially index a collection, support incompatible data types or data models, and more. To learn more, see Use Views with MongoDB Search and Use Views with MongoDB Vector Search.
Criar e gerenciar visualizações
Para saber como criar e gerenciar visualizações, consulte os seguintes recursos:
Comparação com visualizações materializadas on-demand
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
$mergeou$outestá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.
Indexes
As visualizações padrão usam os índices da coleta subjacente. Como resultado , você não pode criar, eliminar ou reconstruir índices gerais diretamente em uma visualização , nem obter uma lista de índices gerais na visualização.
MongoDB stores search indexes and vector search indexes on disk. Accordingly, you can create MongoDB Search indexes and MongoDB Vector Search indexes on compatible views that contain only the following stages:
$matchencerrando uma operação$expr
Você também pode criar índices diretamente em visualizações materializadas sob demanda porque o MongoDB armazena esses índices em disco.
Desempenho
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.
Comportamento
Somente leitura
As visualizações são somente leitura. As operações de gravação nas visualizações retornam um erro.
Isolamento de snapshot
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.
Ver pipelines
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.
Estágios de pipeline que exigem mais de 100 megabytes de memória para executar, gravam arquivos temporários em disco por padrão. Esses arquivos temporários duram durante a execução do pipeline e podem influenciar o espaço de armazenamento em sua instância.
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 quandoallowDiskUseByDefaultestiver definido comofalseUsando
{ allowDiskUse: false }para proibir a gravação de arquivos temporários no disco quandoallowDiskUseByDefaultestiver definido comotrue
Observação
For MongoDB Atlas, it is recommended to configure storage auto-scaling to prevent long-running queries from filling up storage with temporary files.
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.
Controle de acesso
Se o sistema impuser autenticação:
Para criar uma visualização, você deve ter o privilégio no banco de dados de dados em que a visualização é
createCollectioncriada. Além disso, se você tiver o privilégio no namespace da visualização que deseja criar, também deverá terfindofindprivilégio nos seguintes recursos:A coleção de origem ou visualização a partir da qual a nova visualização é criada.
Quaisquer coleções ou visualizações referenciadas no pipeline de visualização.
Para executar query de uma visualização, você deve ter o privilégio
findno namespace da visualização. Você não precisa do privilégiofindna collection de origem ou em qualquer namespace referenciado no pipeline da visualização.
Um usuário com o papel embutido no banco de banco de dados tem os privilégios exigidos para executar as operações readWrite listadas. Para conceder as permissões necessárias:
Crie um usuário com a função necessária.