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

db.createView()

Nesta página

  • Sintaxe
  • Exemplos
  • Comportamento
db.createView()

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 exibição, consulte Comparação com exibições materializadas sob demanda.

Cria um modo de exibição como resultado da aplicação do pipeline de agregação especificado à coleta ou exibição de origem. As exibições atuam como coletas somente leitura e são computadas sob demanda durante as operações de leitura. Você deve criar visualizações no mesmo banco de dados que a coleta de origem. O MongoDB executa operações de leitura em visualizações como parte do pipeline de agregação subjacente.

Uma definição de visualização pipeline não pode incluir o estágio $out ou $merge. Essa restrição também se aplica a pipelines incorporados, como pipelines usados em estágios $lookup ou $facet.

db.createView tem a seguinte sintaxe:

db.createView(<view>, <source>, <pipeline>, <collation>)

O método tem os seguintes parâmetros:

Parâmetro
Tipo
Descrição
view
string
O nome da visualização a ser criada.
source
string
O nome da coleção de origem ou visualização a partir da qual criar a visualização. O nome não inclui o nome do banco de dados e implica o mesmo banco de dados que a visualização para criar; ele não é o namespace completo da coleção ou visualização. Você deve criar visualizações no mesmo banco de dados que a coleção de origem.
pipeline
array

Um array que consiste nos estágios de aggregation pipeline. db.createView() cria a exibição aplicando o pipeline especificado à collection ou exibição source .

Uma definição de visualização pipeline não pode incluir o estágio $out ou $merge. Essa restrição também se aplica a pipelines incorporados, como pipelines usados em estágios $lookup ou $facet.

A definição da visualização é pública; ou seja, as operações db.getCollectionInfos() e explain na exibição incluirão o pipeline que define a visualização. Dessa forma, evite se referir diretamente a campos e valores confidenciais nas definições de visualização.

collation
documento

Opcional. Especifica o agrupamento padrão para o modo de exibição.

A colocação permite que os usuários especifiquem regras específicas do idioma para comparação de strings, como regras para letras maiúsculas e marcas de acento.

Se o source subjacente for uma coleção, a visualização não herda as configurações de agrupamento da coleção.

Se nenhum agrupamento for especificado, o agrupamento padrão da exibição será o agrupador de comparação binária "simples".

Se o source subjacente for outra visualização, a visualização deverá especificar as mesmas configurações de agrupamento.

A opção de agrupamento tem a seguinte sintaxe:

collation: {
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}

Ao especificar agrupamento, o campo locale é obrigatório; todos os outros campos de agrupamento são opcionais. Para obter descrições dos campos, consulte Documento de agrupamento.

O método db.createView() envolve a seguinte operação de comando create:

db.runCommand( { create: <view>, viewOn: <source>, pipeline: <pipeline>, collation: <collation> } )

Importante

Os nomes de visualização são incluídos na saída da lista de collections

As operações que listam collections, como db.getCollectionInfos() e db.getCollectionNames(), incluem visualizações em seus resultados.

A definição da visualização é pública; ou seja, as operações db.getCollectionInfos() e explain na exibição incluirão o pipeline que define a visualização. Dessa forma, evite se referir diretamente a campos e valores confidenciais nas definições de visualização.

Para ver exemplos de como criar uma visualização, consulte as seguintes páginas:

Para ver detalhes comportamentais das visualizações, consulte Comportamento.

Voltar

db.createCollection

Próximo

db.currentOp