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

db.aggregate()

Nesta página

  • Definição
  • Exemplo
db.aggregate()

Executa um pipeline de administração/diagnóstico especificado que não requer uma collection subjacente. Para agregações de dados de collection, consulte db.collection.aggregate().

Importante

Método mongosh

Esta página documenta um método mongosh. Esta não é a documentação de comandos de banco de dados nem drivers específicos de linguagem, como Node.js.

Para o comando do banco de dados, consulte o comando aggregate.

Para drivers de API do MongoDB, consulte a documentação do driver do MongoDB específica da linguagem.

O método db.aggregate() tem a seguinte sintaxe:

db.aggregate( [ <pipeline> ], { <options> } )

O parâmetro pipeline é uma array de estágios a serem executados. Ele deve começar com um estágio compatível que não exija uma collection subjacente, como $currentOp ou $listLocalSessions.

O documento options pode conter os seguintes campos e valores:

Campo
Tipo
Descrição
explain
booleano

Opcional. Especifica que o método deve retornar informações sobre o processamento do pipeline.

Consulte Informações de retorno sobre a operação do pipeline de agregação para obter um exemplo.

Não disponível em transações com vários documentos.

allowDiskUse
booleano

Opcional. Permite gravar em arquivos temporários. Ao definir como true , as operações de agregação podem gravar dados no subdiretório _tmp no diretório dbPath . Consulte Interação com allowDiskUseByDefault para obter um exemplo.

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.

cursor
documento
Opcional. Especifica o tamanho do lote inicial para o cursor. O valor do campo cursor é um documento com o campo batchSize. Consulte Especificar um tamanho de lote inicial para obter sintaxe e exemplo.
maxTimeMS
non-negative integer

Opcional. Especifica um limite de tempo em milésimos de segundo para operações de processamento em um cursor. Se você não especificar um valor para maxTimems, as operações não atingirão o tempo limite. Um valor de 0 especifica explicitamente o comportamento ilimitado padrão.

O MongoDB encerra as operações que excedem o limite de tempo alocado usando o mesmo mecanismo de db.killOp(). O MongoDB só encerra uma operação em um de seus pontos de interrupção designados.

bypassDocumentValidation
booleano

Opcional. Aplicável somente se você especificar as etapas de aggregation do $out ou $merge.

Habilita o db.collection.aggregate() para ignorar a validação do documento durante a operação. Isso permite inserir documentos que não atendam aos requisitos de validação.

readConcern
documento

Opcional. Especifica a read concern.

A opção readConcern tem a seguinte sintaxe: readConcern: { level: <value> }

Os possíveis níveis de read concern são:

  • "local". Esse é o read concern padrão para operações de leitura em relação ao primário e secundários.

  • "available". Disponível para operações de leitura em relação às primárias e secundárias. "available" se comporta da mesma forma que "local" em relação aos secundários primários e não fragmentados. A query retorna os dados mais recentes da instância.

  • "majority". Disponível para conjuntos de réplica que usam o mecanismo de armazenamento WiredTiger.

  • "linearizable". Disponível apenas para operações de leitura no primary.

Para obter mais informações sobre os read concern, consulte Níveis de read concern.

O estágio $out não pode ser usado em conjunto com preocupação de leitura "linearizable". Se você especificar a preocupação de leitura "linearizable" para db.collection.aggregate(), não poderá incluir o estágio $out no pipeline.

O estágio $merge não pode ser usado em conjunto com a read concern "linearizable". Ou seja, se você especificar "linearizable" read concern para db.collection.aggregate(), não poderá incluir o estágio $merge no pipeline.

collation
documento

Opcional.

Especifica o agrupamento a ser usado para a operaçã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.

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.

Se o agrupamento não for especificado, mas a coleção tiver um agrupamento padrão (consulte db.createCollection()), a operação usará o agrupamento especificado para a coleção.

Se nenhum agrupamento for especificado para a coleção ou para as operações, o MongoDB usa a comparação binária simples usada nas versões anteriores para comparações de strings.

Você não pode especificar vários agrupamentos para uma operação. Por exemplo, você não pode especificar agrupamentos diferentes por campo ou, se estiver realizando uma busca com uma classificação, não poderá usar um agrupamento para a busca e outro para a classificação.

hint
string ou documento

Opcional. O índice a ser usado para a aggregation. O índice está na collection/visualização inicial em relação à qual a aggregation é executada.

Especifique o índice pelo nome do índice ou pelo documento de especificação do índice.

O hint não se aplica aos estágios $lookup e $graphLookup.

comment
string
Opcional. Os usuários podem especificar uma cadeia de caracteres arbitrária para ajudar a rastrear a operação por meio do analisador de banco de dados, currentOp e logs.
writeConcern
documento

Opcional. Um documento que expressa a write concern a ser usado com o estágio $out ou $merge.

$outOmitir para usar a write concern padrão com o estágio $out ou $merge.

O exemplo a seguir executa um pipeline com dois estágios. O primeiro estágio executa a operação $currentOp e o segundo estágio filtra os resultados dessa operação.

use admin
db.aggregate( [ {
$currentOp : { allUsers: true, idleConnections: true } }, {
$match : { shard: "shard01" }
}
] )

Voltar

db.adminCommand

Nesta página