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

db.aggregate()

Nesta página

  • Definição
  • Exemplo

Novidade na versão 3.6.

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().

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 para devolver as 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 escrever 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 Executar operação de classificação grande com classificação externa 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.

    Novo na versão 3.2.

    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.

    Novidade na versão 3.4.

    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.

    Observação

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

    Novidade na versão 3.6.

    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.

    Novidade na versão 3.6.

    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