Menu Docs

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

Operadores pipeline de agregação

Nesta página

  • Compatibilidade
  • Operadores de Expressão
  • Operadores de expressões aritméticas
  • Operadores de expressão de array
  • Operadores de expressão booleana
  • Operadores de expressão de comparação
  • Operadores de Expressão Condicional
  • Operadores de expressão de agregação personalizada
  • Operadores de Tamanho de Dados
  • Operadores de Expressão de Data
  • Operador de expressão literal
  • Operadores diversos
  • Operadores de expressão de objeto
  • Definir operadores de expressão
  • Operadores de expressão de string
  • Operador de expressão de texto
  • Operadores de expressão de timestamp
  • Operadores de expressão de trigonometria
  • Operadores de expressão de tipo
  • Acumuladores ($group, $bucket, $bucketAuto, $setWindowFields)
  • Acumuladores (em outras etapas)
  • Operadores de expressão variável
  • Operadores de Janela
  • Lista alfabética de operadores de expressão

Os operadores de pipeline de agregação são compatíveis com o MongoDB Atlas e ambientes locais.

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 usar os operadores de pipeline de agregação para implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações MongoDB na nuvem

Esses operadores de expressão estão disponíveis para construir expressões para uso nos estágios do pipeline de agregação.

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 ambiguidade de análise 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
$abs
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.
Procura 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; ou seja, executa um complemento relativo do segundo conjunto em relação 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.

Novidades na versão 4.2.

Aplica uma expressão regular (regex) a uma string e retorna informações sobre todas as substrings correspondentes.

Novidades na versão 4.2.

Aplica uma expressão regular (regex) a uma string e retorna um booleano que indica se uma correspondência foi encontrada ou não.

Novidades na versão 4.2.

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.

Os operadores de expressão de registro de data/hora retornam valores de um registro de data/hora.

Nome
Descrição

Retorna o ordinal incrementado de um carimbo de data/hora como long.

Novidades na versão 5.1.

Retorna os segundos de um carimbo de data/hora como long.

Novidades na versão 5.1.

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 uma array de valores de expressão exclusivos para cada grupo. A ordem dos elementos da 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. Distinto 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. Distinto 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 únicos 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ões numé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 da expressão numérica.

Novidades na versão 5,0.

Retorna o valor resultante 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 de estágio .

Novidades na versão 5,0.

Retorna o desvio padrão da população a partir de uma expressão numérica aplicada a cada documento.

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

Retorna o desvio padrão da amostra a partir de uma expressão numérica aplicada a cada documento.

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

Retorna a soma dos resultados ao aplicar 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.

Nome
Descrição
Retorna o valor absoluto de um número.
Retorna o resultado de uma função de acumulador definida pelo usuário.
Retorna o cosseno inverso (arco cosseno) de um valor em radianos.
Retorna o cosseno hiperbólico inverso (arco cosseno hiperbólico) de um valor em radianos.
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 uma array de valores de expressão exclusivos para cada grupo. A ordem dos elementos da array é indefinida.

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

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 somente quando todas suas expressões avaliam para true. Aceita qualquer número de expressões 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 o elemento no índice de array especificado.
Converte uma array de pares de valores chave em um documento.
Retorna o seno inverso (arco seno) de um valor em radianos.
Retorna o seno hiperbólico inverso (seno do arco hiperbólico) 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 a tangente hiperbólica inversa (arco tangente hiperbólico) de um valor em radianos.

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 tamanho de uma determinada string ou o conteúdo do valor dos dados binários em bytes.

Novidades na versão 4.4.

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

Novidades na versão 5,2.

Disponível em 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 em estágios $group e $setWindowFields .

Retorna o tamanho em bytes de determinado documento (ou seja, bsontype Object) quando codificado como BSON.

Novidades na versão 4.4.

Retorna o menor número inteiro maior ou igual ao número especificado.
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.
Concatena qualquer número de strings.
Concatena arrays para retornar a array concatenada.
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.
Converte um valor para um tipo especificado.
Retorna o cosseno de um valor medido em radianos.
Retorna o cosseno hiperbólico de um valor medido em radianos.

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

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

Diferente do estágio $count do pipeline.

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

Novidade na versão 5.0: disponível no estágio $setWindowFields .

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

Novidade na versão 5.0: disponível no estágio $setWindowFields .

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.
Subtrai uma série de unidades de tempo de um objeto de data.
Trunca uma data.
Retorna um documento contendo as partes constituintes de uma data.
Retorna uma data/hora como um objeto de data.
Retorna a data como uma string formatada.
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).
Converte um valor de graus para radianos.

Retorna a posição relativa de um documento classificado. Não há lacunas nas posições.

Novidade na versão 5.0: disponível no estágio $setWindowFields .

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

Novidade na versão 5.0: disponível no estágio $setWindowFields .

Retorna o resultado da divisão do primeiro número pelo segundo. Aceita duas expressões de argumento.

Retorna a posição de um documento (conhecido como o número do documento) na partição.

Novidade na versão 5.0: disponível no estágio $setWindowFields .

Retorna true se os valores forem equivalentes.
Aumenta e para o expoente especificado.

Retorna a média móvel exponencial da expressão numérica.

Novidade na versão 5.0: disponível no estágio $setWindowFields .

Seleciona um subconjunto da matriz para retornar uma matriz com apenas os elementos que correspondem à condição do filtro.

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

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

Distinto do operador de array $first .

Retorna o primeiro elemento da array.

Novidades na versão 4.4.

Distinto do acumulador $first .

Retorna um número especificado de elementos desde o início de uma array. Diferente do accumulator $firstN.

Novidades na versão 5,2.

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

Novidades na versão 5,2.

Disponível em $group, expressão e estágios $setWindowFields .

Retorna o maior número inteiro menor ou igual ao número especificado.

Define uma função de agregação personalizada.

Novidades na versão 4.4.

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

Retorna true se o primeiro valor for maior que o segundo.
Retorna true se o primeiro valor for maior ou igual ao segundo.
Retorna a hora para uma data como um número entre 0 e 23.
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.
Retorna um booleano indicando se um valor especificado está em uma matriz.
Procura 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.
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.
Pesquisa 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.

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

Novidade na versão 5.0: disponível no estágio $setWindowFields .

Determina se o operando é um array. Retorna um booleano.
Determina se a expressão é resolvida para um número inteiro, duplo, decimal ou longo.
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 um valor do último documento para cada grupo. A ordem só é definida se os documentos estiverem ordenados.

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

Distinto do operador de array $last .

Retorna o último elemento da array.

Novidades na versão 4.4.

Distinto do acumulador $last .

Retorna um número especificado de elementos do final de uma matriz. Distinto do acumulador $lastN .

Novidades na versão 5,2.

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

Novidades na versão 5,2.

Disponível em $group, expressão e estágios $setWindowFields .

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.

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

Novidades na versão 5.3.

Devolva um valor sem analisar. Use para valores que o aggregation pipeline pode interpretar como uma expressão. Por exemplo, use uma expressão $literal em uma string que comece com um $ para evitar a análise como um caminho do campo.
Calcula o registro natural de um número.

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

Novidades na versão 5,2.

Calcula o registro de um número na base especificada.
Calcula a base de log 10 de um número.
Retorna true se o primeiro valor for menor que o segundo.
Retorna true se o primeiro valor for menor ou igual ao segundo.
Remove o espaço em branco ou os caracteres especificados do início de uma string.
Aplica uma subexpressão a cada elemento de uma matriz e retorna a matriz de valores resultantes em ordem. Aceita parâmetros nomeados.

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

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

Retorna os maiores valores de n em uma array. Distinto do acumulador $maxN.

Novidades na versão 5,2.

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

Novo na versão 5.2: disponível em $group, $setWindowFields e como uma expressão.

Combina vários documentos em um único documento.
Acesse os metadados disponíveis por documento relacionados à operação de agregação.

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

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

Retorna os menores valores de n em uma array. Distinto do accumulator $minN.

Novidades na versão 5,2.

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

Novo na versão 5.2: disponível em $group, $setWindowFields e como uma expressão.

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 restante do primeiro número dividido pelo segundo. Aceita duas expressões de argumento.
Retorna o mês para uma data como um número entre 1 (janeiro) e 12 (dezembro).
Multiplica números para devolver o produto. Aceita qualquer número de expressões de argumento.
Retorna true se os valores não forem equivalentes.
Retorna o valor booleano que é o oposto da expressão do seu argumento. Aceita uma única expressão de argumento.
Converte um documento em uma matriz de documentos representando pares chave/valor.
Retorna true quando qualquer de suas expressões avalia para true. Aceita qualquer número de expressões de argumento.
Cria um número para o expoente especificado.

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 .

Converte um valor de radianos para graus.
gera uma flutuação aleatória entre 0 e 1.
Entrai uma matriz contendo uma sequência de inteiros de acordo com entradas definidas pelo usuário.

Retorna a posição do documento (conhecida como classificação) em relação a outros documentos classificados.

Novidade na versão 5.0: disponível no estágio $setWindowFields .

Aplica uma expressão para cada elemento em uma matriz e a combina em um único valor.
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.

Novidades na versão 4.4.

Substitui todas as instâncias de uma string correspondente em uma determinada entrada.

Novidades na versão 4.4.

Retorna uma array com os elementos em ordem inversa.
Arredonda um número para um inteiro ou para uma casa decimal especificada.
Remove o espaço em branco ou os caracteres especificados do final de uma string.
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.
Retorna os segundos para uma data como um número entre 0 e 60 (segundos bissextos).
Retorna um conjunto com elementos que aparecem no primeiro conjunto mas não no segundo conjunto; ou seja, executa um complemento relativo do segundo conjunto em relação 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.

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.

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.

Retorna o valor de uma expressão aplicada a um documento em uma posição especificada em relação ao documento atual na saída.

Novidade na versão 5.0: disponível no estágio $setWindowFields .

Retorna o número de elementos na matriz. Aceita uma única expressão como argumento.
Retorna o seno de um valor que é medido em radianos.
Retorna o seno hiperbólico de um valor medido em radianos.
Retorna um subconjunto de uma array.
Classifica um array com base em seus elementos.
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.
Calcula a raiz quadrada.

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 .

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

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 .

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.
Retorna a tangente de um valor que é medido em radianos.
Retorna a tangente hiperbólica de um valor medido em radianos.
Converte o valor em booleano.
Converte o valor para uma data.
Converte o valor para um Decimal128.
Converte o valor em um duplo.
Converte o valor para um número inteiro.
Converte o valor para um longo.
Converte o valor para um ObjectId.

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

Novidades na versão 5,2.

Disponível em 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 em estágios $group e $setWindowFields .

Converte o valor para uma string.
Converte uma string em minúsculas. Aceita uma única expressão de argumento.
Converte uma string em maiúsculas. Aceita uma única expressão de argumento.
Remove o espaço em branco ou os caracteres especificados do início e fim de uma string.
Trunca um número para um inteiro ou para uma casa decimal especificada.

Retorna o ordinal incrementado de um carimbo de data/hora como long.

Novidades na versão 5.1.

Retorna os segundos de um carimbo de data/hora como long.

Novidades na versão 5.1.

Retorne o tipo de dados BSON do campo.

Remove um campo especificado de um documento. Um alias para $setField remover campos com nomes que contêm pontos ( . ) ou que começam com sinais de dólar ( $ ).

Novidades na versão 5,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).
Mesclar dois arrays juntos.

Para os estágios do pipeline, consulte Estágios do pipeline de agregação.

← $vectorSearch (agregação)