Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Referência rápida do pipeline de agregação

Nesta página

  • Estágios
  • Expressões
  • Expressões do operador
  • Índice de Operadores de expressão

Observação

Para obter detalhes sobre um operador específico, incluindo sintaxe e exemplos, clique no link para a página de referência do operador.

Você pode construir aggregation pipelines na UI para sistemas hospedados no MongoDB Atlas.

No método db.collection.aggregate() , os estágios do pipeline aparecem em uma array. Os documentos passam pelas etapas em sequência. Todos, exceto os estágios $out, $merge e $geoNear , podem aparecer várias vezes em um pipeline.

db.collection.aggregate( [ { <stage> }, ... ] )
Estágio
Descrição
$addFields

Adiciona novos campos aos documentos. Semelhante ao $project, $addFields remodela cada documento no fluxo; especificamente, adicionando novos campos aos documentos de saída que contêm os campos existentes dos documentos de entrada e os campos recém-adicionados.

$set é um alias para $addFields.

Categoriza documentos recebidos em grupos, chamados blocos, com base em uma expressão especificada e limites de blocos.
Categoriza documentos recebidos em um número específico de grupos, chamados blocos, com base em uma expressão especificada. Os limites dos compartimentos são determinados automaticamente em uma tentativa de distribuir uniformemente os documentos no número especificado de compartimentos.
Retorna um cursor Alterar coluna para a coleção. Esse estágio só pode ocorrer uma vez em um pipeline de agregação e deve ocorrer como o primeiro estágio.

Divide change stream grandes que excedem 16 MB em fragmentos menores retornados em um cursor de change stream de alterações.

Você só pode usar $changeStreamSplitLargeEvent em um pipeline $changeStream e ele deve ser o estágio final no pipeline.

Retorna estatísticas sobre uma coleção ou visualização.

Retorna uma contagem do número de documentos nesta etapa do pipeline de agregação.

Distinto do acumulador de agregação do $count.

Cria novos documentos em uma sequência de documentos onde determinados valores em um campo estão faltando.

Retorna documentos literais de expressões de entrada.
Processa vários aggregation pipelines em um único estágio no mesmo conjunto de documentos de entrada. Permite a criação de agregações multifacetadas capazes de caracterizar dados em várias dimensões, ou facets, em um único estágio.

Preenche null e os valores de campo ausentes nos documentos.

Retorna um fluxo ordenado de documentos baseado na proximidade de um ponto geoespacial. Incorpora a funcionalidade do $match, $sort e $limit para dados geoespaciais. Os documentos de saída incluem um campo de distância adicional e podem incluir um campo de identificador de local.

Executa uma pesquisa recursiva em uma coleção. Para cada documento de saída, adiciona um novo campo de matriz que contém resultados transversais da busca recursiva por esse documento.
Agrupa documentos de entrada por uma expressão de identificador especificada e aplica a(s) expressão(ões) acumuladora(s), se especificada(s), para cada grupo. Consome todos os documentos de entrada e gera um documento por cada grupo distinto. Os documentos de saída só contêm o campo identificador e, se especificado, campos acumulados.
Retorna estatísticas sobre o uso de cada índice para a coleção.
Passa os primeiros n documentos não modificados para o pipeline onde n é o limite especificado. Para cada documento de entrada, gera um documento (para os primeiros n documentos) ou zero documentos (após os primeiros n documentos).

Retorna informações sobre Atlas Search indexes em uma coleção especificada.

Lista todas as sessões que estão ativas há muito tempo para propagar para a coleção system.sessions.
Executa uma junção externa esquerda a outra collection no mesmo banco de dados para filtrar documentos da collection "associada" para processamento.
Filtra o fluxo de documentos para permitir que apenas documentos correspondentes passem sem modificações para o próximo estágio do pipeline. O $match utiliza consultas MongoDB padrão. Para cada documento de entrada, gera um documento (uma correspondência) ou zero documentos (nenhuma correspondência).
Escreve os documentos resultantes do aggregation pipeline em uma coleção. O estágio pode incorporar (inserir novos documentos, mesclar documentos, substituir documentos, manter documentos existentes, falhar na operação, processar documentos com um pipeline de atualização personalizado) os resultados em uma coleção de saída. Para usar o estágio $merge , ele deve ser o último estágio do pipeline.
Escreve os documentos resultantes do aggregation pipeline em uma coleção. Para usar o estágio $out, ele deve ser o último estágio no pipeline.
Retorna informações de cache do plano para uma coleção.

Remodela cada documento no fluxo, adicionando novos campos ou removendo campos existentes. Para cada documento de entrada, gera um documento.

Consulte também $unset para remover campos existentes.

Remodela cada documento no fluxo restringindo o conteúdo de cada documento com base nas informações armazenadas nos próprios documentos. Incorpora a funcionalidade do $project e $match. Pode ser usado para implementar a redação em nível de campo. Para cada documento de entrada, gera um ou zero documentos.

Substitui um documento pelo documento incorporado especificado. A operação substitui todos os campos existentes no documento de entrada, incluindo o campo _id. Especifique um documento incorporado no documento de entrada para promover o documento incorporado ao nível superior.

$replaceWith é um alias para o estágio $replaceRoot.

Substitui um documento pelo documento incorporado especificado. A operação substitui todos os campos existentes no documento de entrada, incluindo o campo _id. Especifique um documento incorporado no documento de entrada para promover o documento incorporado ao nível superior.

$replaceWith é um alias para o estágio $replaceRoot.

Seleciona aleatoriamente o número especificado de documentos de sua entrada.

Realiza uma Full Text Search do campo ou campos em uma coleção do Atlas.

Observação

$search está disponível apenas para clusters do MongoDB Atlas, e não está disponível para implementações auto-gerenciadas. Para saber mais, consulte Estágios de aggregation pipeline do Atlas Search.

Retorna diferentes tipos de documentos de resultado de metadados para a query Pesquisa do Atlas em relação a uma coleção do Atlas.

Observação

$searchMeta está disponível apenas para clusters MongoDB Atlas executando MongoDB v4.4.9 ou superior e não está disponível para sistemas autogerenciados. Para saber mais, consulte Estágios de aggregation pipeline do Atlas Search.

Adiciona novos campos aos documentos. Semelhante ao $project, $set remodela cada documento no fluxo; especificamente, adicionando novos campos aos documentos de saída que contêm os campos existentes dos documentos de entrada e os campos recém-adicionados.

$set é um alias para o estágio $addFields.

Agrupa documentos em janelas e aplica um ou mais operadores aos documentos em cada janela.

Novidades na versão 5.0.

Ignora os primeiros n documentos, em que n é o número de pulos especificado, e passa os documentos restantes sem modificações para o pipeline. Para cada documento de entrada, produz zero documentos (para os primeiros n documentos) ou um documento (se após os primeiros n documentos).
Reordena o fluxo de documentos por uma chave de classificação especificada. Apenas a ordem muda; os documentos permanecem inalterados. Para cada documento de entrada, gera um documento.
Agrupa documentos recebidos com base no valor de uma expressão especificada e, em seguida, calcula a contagem de documentos em cada grupo distinto.
Executa uma união de duas coleções; ou seja, combina resultados de pipeline de duas coleções em um único conjunto de resultados.

Remove/exclui campos dos documentos.

$unset é um alias para o estágio $project que remove campos.

Desconstrói um campo de array a partir dos documentos de entrada para gerar um documento para cada elemento. Cada documento de saída substitui a array por um valor de elemento. Para cada documento de entrada, produz n documentos onde n é o número de elementos de array e pode ser zero para uma array vazia.

Executa uma pesquisa ANN em um vetor no campo especificado de uma coleção Atlas .

Novidade na versão 6.0.11.

Observação

$vectorSearch está disponível apenas para clusters MongoDB Atlas executando MongoDB v6.0.11 ou superior e não está disponível para sistemas autogerenciados. Para saber mais, consulte Estágios de aggregation pipeline do Atlas Search.

A partir da versão 3.6, o MongoDB também fornece o método db.aggregate() :

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

As seguintes etapas utilizam o método db.aggregate() e não o método db.collection.aggregate().

Estágio
Descrição
Retorna um cursor Alterar coluna para a coleção. Esse estágio só pode ocorrer uma vez em um pipeline de agregação e deve ocorrer como o primeiro estágio.
Retorna informações sobre operações ativas e/ou dormentes para a implementação do MongoDB.
Lista todas as sessões ativas recentemente em uso na mongos ou instânciamongod conectada no momento. Essas sessões podem ainda não ter sido propagadas para a coleção system.sessions.
Retorna documentos literais de valores de entrada.

A partir do MongoDB 4.2, você pode usar o pipeline de agregação para atualizações em:

Comando
mongosh Métodos

Para as atualizações, o pipeline pode consistir nos seguintes estágios:

Dica

Veja também:

As expressões podem incluir caminhos de campo, literais, variáveis de sistema, objetos de expressão e operadores de expressão . As expressões podem ser aninhadas.

Expressões de aggregation utilizam o caminho do campo para acessar campos nos documentos de entrada. Para especificar um caminho do campo, prefixe o nome do campo ou o nome do campo com pontos (se o campo estiver no documento incorporado) com um cifrão $. Por exemplo, "$user" para especificar o caminho do campo para o campo user ou "$user.name" para especificar o caminho do campo para o campo "user.name".

"$<field>" é equivalente a "$$CURRENT.<field>", em que CURRENT é uma variável de sistema cujo padrão é a raiz do objeto atual, a menos que seja indicado o contrário em estágios específicos.

O MongoDB fornece várias variáveis do sistema de agregação para uso em expressões. Para acessar variáveis, prefixe o nome da variável com $$. Por exemplo:

Variável
Acesso via $$
breve descrição
$$NOW
Retorna o valor de data e hora atual, que é o mesmo em todos os membros da implantação e permanece constante em todo o pipeline de agregação. (Disponível em mais de 4.2)
$$CLUSTER_TIME
Retorna o valor do registro de data e hora atual, que é o mesmo em todos os membros da implantação e permanece constante em todo o pipeline de agregação. Somente para conjuntos de réplicas e clusters fragmentados. (Disponível em mais de 4.2)
$$ROOT
Faz referência ao documento raiz, ou seja, ao documento de nível superior.
$$CURRENT
Faz referência ao início do caminho do campo, que por padrão é ROOT , mas pode ser alterado.
$$REMOVE
Permite a exclusão condicional de campos. (Disponível em mais de 3.6)
$$DESCEND
Um dos resultados permitidos de uma expressão $redact.
$$PRUNE
Um dos resultados permitidos de uma expressão $redact.
$$KEEP
Um dos resultados permitidos de uma expressão $redact.

Para obter uma descrição mais detalhada dessas variáveis, consulte variáveis do sistema.

Os literais podem ser de qualquer tipo. No entanto, o MongoDB analisa literais de string que começam com um cifrão $ como um caminho para um campo e literais numéricos/booleanos em objetos de expressão como sinalizadores de projeção. Para evitar analisar literais, use a expressão $literal .

Objeto de expressão têm o seguinte formulário:

{ <field1>: <expression1>, ... }

Se as expressões forem literais numéricos ou booleanos, o MongoDB trata os literais como sinalizadores de projeção (por exemplo 1 ou true para incluir o campo), válido somente no estágio $project . Para evitar tratar literais numéricos ou booleanos como sinalizadores de projeção, utilize a expressão $literal para envolver os literais numéricos ou booleanos.

As expressões de operadores são semelhantes às funções que aceitam argumentos. Em geral, estas expressões tomam uma matriz de argumentos e têm a seguinte forma:

{ <operator>: [ <argument1>, <argument2> ... ] }

Se o operador aceitar um único argumento, você poderá omitir a matriz externa designando a lista de argumentos:

{ <operator>: <argument> }

Para evitar a análise de ambiguidade se o argumento for uma array literal, você deve envolver a array literal em uma expressão $literal ou manter a array externa que designa a lista de argumentos.

Expressões aritméticas executam operações matemáticas em números. Algumas expressões aritméticas também podem suportar aritmética de datas.

Nome
Descrição
Retorna o valor absoluto de um número.
Adiciona números para retornar a soma ou adiciona números e uma data para retornar uma nova data. Se adicionar números e uma data, trata os números como milissegundos. Aceita qualquer número de expressões de argumentos, mas, no máximo, uma expressão pode ser resolvida para uma data.
Retorna o menor número inteiro maior ou igual ao número especificado.
Retorna o resultado da divisão do primeiro número pelo segundo. Aceita duas expressões de argumento.
Aumenta e para o expoente especificado.
Retorna o maior número inteiro menor ou igual ao número especificado.
Calcula o registro natural de um número.
Calcula o registro de um número na base especificada.
Calcula a base de log 10 de um número.
Retorna o restante do primeiro número dividido pelo segundo. Aceita duas expressões de argumento.
Multiplica números para devolver o produto. Aceita qualquer número de expressões de argumento.
Cria um número para o expoente especificado.
Arredonda um número para um inteiro inteiro ou para uma casa decimal especificada.
Calcula a raiz quadrada.
Retorna o resultado da subtração do segundo valor do primeiro. Se os dois valores forem números, retorne a diferença. Se os dois valores forem datas, retorne a diferença em milissegundos. Se os dois valores forem uma data e um número em milissegundos, retorne a data resultante. Aceita duas expressões de argumentos. Se os dois valores forem uma data e um número, especifique o argumento de data primeiro, pois ele não é significativo para subtrair uma data de um número.
Trunca um número para um inteiro ou para uma casa decimal especificada.
Nome
Descrição
Retorna o elemento no índice de array especificado.
Converte uma array de pares de valores chave em um documento.
Concatena arrays para retornar a array concatenada.
Seleciona um subconjunto da matriz para retornar uma matriz com apenas os elementos que correspondem à condição do filtro.
Retorna o primeiro elemento da array. Distinto do acumulador $first .
Retorna um número especificado de elementos desde o início de uma array. Diferente do accumulator $firstN.
Retorna um booleano indicando se um valor especificado está em uma matriz.
Pesquisa uma matriz para uma ocorrência de um valor especificado e retorna o índice da matriz da primeira ocorrência. Se a substring não for encontrada, retorna -1.
Determina se o operando é um array. Retorna um booleano.
Retorna o último elemento da matriz. Distinto do acumulador $last .
Retorna um número especificado de elementos do final de uma matriz. Distinto do acumulador $lastN .
Aplica uma subexpressão a cada elemento de uma matriz e retorna a matriz de valores resultantes em ordem. Aceita parâmetros nomeados.
Retorna os maiores valores de n em uma array. Distinto do acumulador $maxN.
Retorna os menores valores de n em uma array. Distinto do accumulator $minN.
Converte um documento em uma matriz de documentos representando pares chave/valor.
Entrai uma matriz contendo uma sequência de inteiros de acordo com entradas definidas pelo usuário.
Aplica uma expressão para cada elemento em uma matriz e a combina em um único valor.
Retorna uma array com os elementos em ordem inversa.
Retorna o número de elementos na matriz. Aceita uma única expressão como argumento.
Retorna um subconjunto de uma array.
Classifica os elementos de uma array.
Mesclar dois arrays juntos.

Expressões booleanas avaliam suas expressões argumentais como booleanas e retornam um booleano como resultado.

Além do valor booleano false, a expressão booleana avalia como false os seguintes valores: null, 0 e undefined. A expressão booleana avalia todos os outros valores como true, incluindo valores numéricos diferentes de zero e arrays.

Nome
Descrição
Retorna true somente quando todas suas expressões avaliam para true. Aceita qualquer número de expressões de argumento.
Retorna o valor booleano que é o oposto da expressão do seu argumento. Aceita uma única expressão de argumento.
Retorna true quando qualquer de suas expressões avalia para true. Aceita qualquer número de expressões de argumento.

As expressões de comparação retornam um booleano, exceto para $cmp que retorna um número.

As expressões de comparação usam duas expressões de argumento e comparam valor e tipo, usando a ordem de comparação BSON especificada para valores de tipos diferentes.

Nome
Descrição
Retorna 0 se os dois valores forem equivalentes, 1 se o primeiro valor for maior que o segundo, e -1 se o primeiro valor for menor que o segundo.
Retorna true se os valores forem equivalentes.
Retorna true se o primeiro valor for maior que o segundo.
Retorna true se o primeiro valor for maior ou igual ao segundo.
Retorna true se o primeiro valor for menor que o segundo.
Retorna true se o primeiro valor for menor ou igual ao segundo.
Retorna true se os valores não forem equivalentes.
Nome
Descrição
Um operador ternário que avalia uma expressão e, dependendo do resultado, retorna o valor de uma das outras duas expressões. Aceita três expressões em uma lista ordenada ou três parâmetros nomeados.
Retorna o resultado não nulo da primeira expressão ou o resultado da segunda expressão se a primeira expressão resultar em um resultado nulo. O resultado nulo engloba instâncias de valores indefinidos ou campos ausentes. Aceita duas expressões como argumentos. O resultado da segunda expressão pode ser nulo.
Avalia uma série de expressões de caso. Quando encontra uma expressão que avalia para true, o $switch executa uma expressão especificada e quebra o fluxo de controle.
Nome
Descrição
Define uma função de acumulação personalizada.
Define uma função personalizada.

Os seguintes operadores retornam o tamanho de um elemento de dados:

Nome
Descrição
Retorna o tamanho de uma determinada string ou o conteúdo do valor dos dados binários em bytes.
Retorna o tamanho em bytes de determinado documento (ou seja, bsontype Object) quando codificado como BSON.

Os seguintes operadores retornam objetos de data ou componentes de um objeto de data:

Nome
Descrição
Adiciona uma série de unidades de tempo a um objeto de data.
Retorna a diferença entre duas datas.
Constrói um objeto BSON Date considerando as peças constituintes da data.
Converte uma string de data/hora em um objeto de data.
Subtrai uma série de unidades de tempo de um objeto de data.
Retorna um documento contendo as partes constituintes de uma data.
Retorna a data como uma string formatada.
Trunca uma data.
Retorna o dia do mês para uma data como um número entre 1 e 31.
Retorna o dia da semana para uma data como um número entre 1 (Domingo) e 7 (Sábado).
Retorna o dia do ano para uma data como um número entre 1 e 366 (ano bissexto).
Retorna a hora para uma data como um número entre 0 e 23.
Retorna o número do dia da semana no formato ISO 8601, que varia de 1 (para segunda-feira) a 7 (para domingo).
Retorna o número da semana no formato ISO 8601, que varia de 1 a 53. Os números da semana começam em 1 com a semana (de segunda a domingo) que contém a primeira quinta-feira do ano.
Retorna o número do ano no formato ISO 8601. O ano começa com a segunda-feira da semana 1 (ISO 8601) e termina com o domingo da última semana (ISO 8601).
Retorna milissegundos de uma data como um número entre 0 e 999.
Retorna o minuto para uma data como um número entre 0 e 59.
Retorna o mês para uma data como um número entre 1 (janeiro) e 12 (dezembro).
Retorna os segundos para uma data como um número entre 0 e 60 (segundos bissextos).

Converte o valor para uma data.

Novidades na versão 4.0.

Retorna o número da semana para uma data como um número entre 0 (a semana parcial que precede o primeiro domingo do ano) e 53 (ano bissexto).
Retorna o ano para uma data como um número (por exemplo, 2014).

Os seguintes operadores aritméticos podem tomar operandos de data:

Nome
Descrição
Adiciona números e uma data para retornar uma nova data. Se adicionar números e uma data, trata os números como milissegundos. Aceita qualquer número de expressões de argumento, mas, no máximo, uma expressão pode ser resolvida para uma data.
Retorna o resultado da subtração do segundo valor do primeiro. Se os dois valores forem datas, retorne a diferença em milissegundos. Se os dois valores forem uma data e um número em milissegundos, retorne a data resultante. Aceita duas expressões de argumentos. Se os dois valores forem uma data e um número, especifique o argumento de data primeiro, pois não é significativo subtrair uma data de um número.
Nome
Descrição
Devolva um valor sem analisar. Use para valores que o pipeline de agregação pode interpretar como uma expressão. Por exemplo, use uma expressão $literal em uma string que comece com um cifrão ($) para evitar a análise como um caminho de campo.
Nome
Descrição

Retorna o valor de um campo especificado de um documento. Você pode usar $getField para recuperar o valor de campos com nomes que contenham pontos (.) ou comecem com cifrões ($).

Novidades na versão 5.0.

Retorna uma flutuação aleatória entre 0 e 1
Selecione documentos aleatoriamente a uma determinada taxa. Embora o exato número de documentos selecionados varie em cada execução, a quantidade escolhida aproxima-se da taxa de amostragem expressa em percentagem do número total de documentos.
Nome
Descrição
Combina vários documentos em um único documento.
Converte um documento em uma matriz de documentos representando pares chave/valor.

Adiciona, atualiza ou remove um campo especificado em um documento. Você pode usar $setField para adicionar, atualizar ou remover campos com nomes que contenham pontos (.) ou começar com cifrões ($).

Novidades na versão 5.0.

Expressões de conjunto executam operações de conjunto em matrizes, tratando matrizes como conjuntos. Definir expressões ignora as entradas duplicadas em cada matriz de entrada e a ordem dos elementos.

Se a operação de definição retornar um conjunto, a operação filtrará duplicatas no resultado para gerar uma matriz que contenha apenas entradas exclusivas. A ordem dos elementos na matriz de saída não é especificada.

Se um conjunto contiver um elemento de array aninhada, a expressão set não desce para a array aninhada, mas avalia a array no nível superior.

Nome
Descrição
Retorna true se não elemento de um conjunto avaliar para false, caso contrário, retorna false. Aceita uma única expressão de argumento.
Retorna true se qualquer elemento de um conjunto avaliar para true; caso contrário, retorna false. Aceita uma única expressão de argumento.
Retorna um conjunto com elementos que aparecem no primeiro conjunto, mas não no segundo conjunto; isto é, executa um complemento relativo do segundo conjunto relativo ao primeiro. Aceita exatamente duas expressões de argumento.
Retorna true se os conjuntos de entrada tiverem os mesmos elementos distintos. Aceita duas ou mais expressões de argumento.
Retorna um conjunto com elementos que aparecem em todos os conjuntos de entrada. Aceita qualquer número de expressões de argumento.
Retorna true se todos os elementos do primeiro conjunto aparecerem no segundo conjunto, inclusive quando o primeiro conjunto for igual ao segundo conjunto; ou seja, não um subconjunto rigoroso. Aceita exatamente duas expressões de argumento.
Retorna um conjunto com elementos que aparecem em qualquer conjunto de entrada.

As expressões de string, com exceção de $concat, só têm um comportamento bem definido para string ASCII.

$concat o comportamento é bem definido independentemente dos caracteres usados.

Nome
Descrição
Concatena qualquer número de strings.
Converte uma string de data/hora em um objeto de data.
Retorna a data como uma string formatada.
Pesquisa uma string para uma ocorrência de uma substring e retorna o índice de bytes UTF-8 da primeira ocorrência. Se a substring não for encontrada, retorna -1.
Procura uma string para uma ocorrência de uma substring e retorna o índice de ponto do código UTF-8 da primeira ocorrência. Se a substring não for encontrada, retorna -1

Remove o espaço em branco ou os caracteres especificados do início de uma string.

Novidades na versão 4.0.

Aplica uma expressão regular (regex) a uma string e retorna informações sobre a primeira substring correspondente.
Aplica uma expressão regular (regex) a uma string e retorna informações sobre todas as substrings correspondentes.
Aplica uma expressão regular (regex) a uma string e retorna um booleano que indica se uma correspondência foi encontrada ou não.
Substitui a primeira instância de uma string correspondente em uma determinada entrada.
Substitui todas as instâncias de uma string correspondente em uma determinada entrada.

Remove o espaço em branco ou os caracteres especificados do final de uma string.

Novidades na versão 4.0.

Divide uma string em substrings com base em um delimitador. Retorna uma matriz de substrings. Se o delimitador não for encontrado dentro da string, retorna uma matriz contendo a string original.
Retorna o número de bytes codificados UTF-8 em uma string.
Retorna o número de8 pontos de código UTF- em uma string.
Executa a comparação de string sem distinção de maiúsculas e minúsculas e retorna: 0 se duas strings forem equivalentes, 1 se a primeira string for maior que a segunda e -1 se a primeira string for menor que a segunda.
Obsoleto. Use $substrBytes ou $substrCP.
Retorna a substring de uma string. Começa com o caractere no índice de byte UTF-8 especificado (baseado em zero) na string e continua pelo número de bytes especificado.
Retorna a substring de uma string. Começa com o caractere no8 ponto de código (CP) UTF- especificado índice (baseado em zero) na string e continua pelo número de pontos de código especificado.
Converte uma string em minúsculas. Aceita uma única expressão de argumento.

Converte o valor para uma string.

Novidades na versão 4.0.

Remove o espaço em branco ou os caracteres especificados do início e fim de uma string.

Novidades na versão 4.0.

Converte uma string em maiúsculas. Aceita uma única expressão de argumento.
Nome
Descrição
Acesse os metadados disponíveis por documento relacionados à operação de agregação.

Expressões de trigonometria executam operações trigonométricas em números. Os valores que representam ângulos são sempre de entrada ou saída em radianos. Use $degreesToRadians e $radiansToDegrees para converter entre medidas de grau e radianos.

Nome
Descrição
Retorna o seno de um valor que é medido em radianos.
Retorna o cosseno de um valor medido em radianos.
Retorna a tangente de um valor que é medido em radianos.
Retorna o seno inverso (arco seno) de um valor em radianos.
Retorna o cosseno inverso (arco cosseno) de um valor em radianos.
Retorna a tangente inversa (arco tangente) de um valor em radianos.
Retorna a tangente inversa (arco tangente) de y / x em radianos, em que y e x são o primeiro e o segundo valores passados para a expressão, respectivamente.
Retorna o seno hiperbólico inverso (arco seno hiperbólico) de um valor em radianos.
Retorna o cosseno hiperbólico inverso (arco cosseno hiperbólico) de um valor em radianos.
Retorna a tangente hiperbólica inversa (arco tangente hiperbólico) de um valor em radianos.
Retorna o seno hiperbólico de um valor medido em radianos.
Retorna o cosseno hiperbólico de um valor medido em radianos.
Retorna a tangente hiperbólica de um valor medido em radianos.
Converte um valor de graus para radianos.
Converte um valor de radianos para graus.
Nome
Descrição

Converte um valor para um tipo especificado.

Novidades na versão 4.0.

Retorna booleano true se a expressão especificada produzir um integer, decimal, double ou long.

Retorna o booleano false se a expressão produzir qualquer outro tipo BSON, null ou um campo ausente.

Converte o valor em booleano.

Novidades na versão 4.0.

Converte o valor para uma data.

Novidades na versão 4.0.

Converte o valor para um Decimal128.

Novidades na versão 4.0.

Converte o valor em um duplo.

Novidades na versão 4.0.

Converte o valor para um número inteiro.

Novidades na versão 4.0.

Converte o valor para um longo.

Novidades na versão 4.0.

Converte o valor para um ObjectId.

Novidades na versão 4.0.

Converte o valor para uma string.

Novidades na versão 4.0.

Retorne o tipo de dados BSON do campo.

Operadores acumuladores de agregação:

Alterado na versão 5.0.

Nome
Descrição
Retorna o resultado de uma função de acumulador definida pelo usuário.

Retorna um array de valores de expressão exclusivos para cada grupo. A ordem dos elementos do array é indefinida.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna uma média de valores numéricos. Ignora valores não numéricos.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna o elemento inferior de um grupo de acordo com a ordem de classificação especificada.

Novidades na versão 5.2.

Disponível nos estágios $group e $setWindowFields.

Retorna uma agregação dos campos n inferiores dentro de um grupo, de acordo com a ordem de classificação especificada.

Novidades na versão 5.2.

Disponível nos estágios $group e $setWindowFields.

Retorna o número de documentos em um grupo.

Diferente do estágio $count do pipeline.

Novidade na versão 5.0: Disponível nos estágios $group e $setWindowFields.

Retorna um valor do primeiro documento para cada grupo. A ordem só é definida se os documentos estiverem ordenados.

Distinto do operador de array $first .

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna uma agregação dos primeiros n elementos dentro de um grupo. Só faz sentido quando os documentos estão em uma ordem definida. Diferente do operador de array $firstN.

Novidade na versão 5.2: Disponível nos estágios $group, expressão e $setWindowFields.

Retorna um valor do último documento para cada grupo. A ordem só é definida se os documentos estiverem ordenados.

Distinto do operador de array $last .

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna uma agregação dos últimos n elementos dentro de um grupo. Só faz sentido quando os documentos estão em uma ordem definida. Diferente do operador de array $lastN.

Novidade na versão 5.2: Disponível nos estágios $group, expressão e $setWindowFields.

Retorna o valor de expressão mais alto para cada grupo.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna uma agregação dos n elementos com valor máximo em um grupo. Diferente do operador de array $maxN.

Novidades na versão 5.2.

Disponível em $group, $setWindowFields e como uma expressão.

Retorna um documento criado combinando os documentos de entrada de cada grupo.

Retorna o valor de expressão mais baixo para cada grupo.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna uma agregação dos n elementos com valor mínimo em um grupo. Distinto do operador de array $minN .

Novidades na versão 5.2.

Disponível em $group, $setWindowFields e como uma expressão.

Retorna uma matriz de valores de expressão para documentos em cada grupo.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna o desvio padrão da população dos valores de entrada.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna o desvio padrão da amostra dos valores de entrada.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna uma soma de valores numéricos. Ignora valores não numéricos.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna o principal elemento de um grupo de acordo com a ordem de classificação especificada.

Novidades na versão 5.2.

Disponível nos estágios $group e $setWindowFields.

Retorna uma agregação dos principais campos n dentro de um grupo, de acordo com a ordem de classificação especificada.

Novidades na versão 5.2.

Disponível nos estágios $group e $setWindowFields.

Alguns operadores que estão disponíveis como acumuladores para o estágio $group também estão disponíveis para uso em outros estágios, mas não como acumuladores. Quando usados nesses outros estágios, esses operadores não mantêm seu estado e podem receber como entrada um único argumento ou vários argumentos. Para obter detalhes, consulte a página do operador específico.

Alterado na versão 5.0.

Os seguintes operadores acumuladores também estão disponíveis nos estágios $project, $addFields, $set e, começando no MongoDB 5.0, $setWindowFields.

Nome
Descrição
Retorna uma média da expressão especificada ou lista de expressões para cada documento. Ignora valores não numéricos.
Retorna o máximo da expressão especificada ou lista de expressões para cada documento
Retorna o mínimo da expressão especificada ou lista de expressões para cada documento
Retorna o desvio padrão da população dos valores de entrada.
Retorna o desvio padrão da amostra dos valores de entrada.
Retorna uma soma de valores numéricos. Ignora valores não numéricos.
Nome
Descrição

Define variáveis para uso dentro do escopo de uma subexpressão e retorna o resultado da subexpressão. Aceita parâmetros nomeados.

Aceita qualquer número de expressões de argumento.

Novidades na versão 5.0.

Os operadores de janelas retornam valores de uma extensão definida de documentos de uma coleção, conhecida como janela. Uma janela é definida no estágio $setWindowFields, disponível a partir do MongoDB 5.0.

Os seguintes operadores de janela estão disponíveis na etapa $setWindowFields.

Nome
Descrição

Retorna uma array de todos os valores exclusivos que resultam da aplicação de uma expressão a cada documento.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna a média da expressão especificada. Ignora valores não numéricos.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna o elemento inferior de um grupo de acordo com a ordem de classificação especificada.

Novidades na versão 5.2.

Disponível nos estágios $group e $setWindowFields.

Retorna uma agregação dos campos n inferiores dentro de um grupo, de acordo com a ordem de classificação especificada.

Novidades na versão 5.2.

Disponível nos estágios $group e $setWindowFields.

Retorna o número de documentos no grupo ou janela.

Diferente do estágio $count do pipeline.

Novidades na versão 5.0.

Retorna a covariância populacional de duas expressõesnuméricas .

Novidades na versão 5.0.

Retorna a covariância de amostra de duas expressões numéricas.

Novidades na versão 5.0.

Retorna a posição do documento (conhecida como classificação) relativa a outros documentos na $setWindowFields partição de estágio. Não há lacunas nas classificações. Os empates recebem a mesma classificação.

Novidades na versão 5.0.

Retorna a taxa média de alteração dentro da janela especificada.

Novidades na versão 5.0.

Retorna a posição de um documento (conhecido como o número do documento) na partição de estágio $setWindowFields . Vínculos resultam em diferentes números de documentos adjacentes.

Novidades na versão 5.0.

Retorna a média móvel exponencial para a expressãonumérica.

Novidades na versão 5.0.

Retorna o valor que resulta da aplicação de uma expressão ao primeiro documento em um grupo ou janela.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna a aproximação da área abaixo de uma curva.

Novidades na versão 5.0.

Retorna o valor que resulta da aplicação de uma expressão ao último documento em um grupo ou janela.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Preenche null e campos ausentes em uma janela usando interpolação linear com base nos valores do campo circundante.

Disponível no estágio $setWindowFields .

Novidades na versão 5.3.

Última observação levada adiante. Define valores para null e campos ausentes em uma janela para o último valor não nulo do campo.

Disponível no estágio $setWindowFields .

Novidades na versão 5.2.

Retorna o valor máximo resultante da aplicação de uma expressão a cada documento.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna o valor mínimo que resulta da aplicação de uma expressão a cada documento.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna uma agregação dos n elementos com valor mínimo em um grupo. Distinto do operador de array $minN .

Novidades na versão 5.2.

Disponível em $group, $setWindowFields e como uma expressão.

Retorna uma array de valores que resultam da aplicação de uma expressão a cada documento.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna a posição do documento (conhecida como classificação) em relação a outros documentos na partição $setWindowFields de estágio .

Novidades na versão 5.0.

Retorna o valor de uma expressão aplicada a um documento em uma posição especificada em relação ao documento atual na $setWindowFields partição do estágio .

Novidades na versão 5.0.

Retorna o desvio padrão de população que resulta da aplicação de uma expressão numérica a cada documento.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna o desvio padrão da amostra resultante da aplicação de uma expressão numérica a cada documento.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna a soma que resulta da aplicação de uma expressão numérica a cada documento.

Alterado na versão 5.0: Disponível no estágio $setWindowFields.

Retorna o principal elemento de um grupo de acordo com a ordem de classificação especificada.

Novidades na versão 5.2.

Disponível nos estágios $group e $setWindowFields.

Retorna uma agregação dos principais campos n dentro de um grupo, de acordo com a ordem de classificação especificada.

Novidades na versão 5.2.

Disponível nos estágios $group e $setWindowFields.

← Referência de agregação