Referência rápida do pipeline de agregaçã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.
Estágios
Estágios (db.collection.aggregate
)
No método db.collection.aggregate()
, os estágios de 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 |
---|---|
Adiciona novos campos aos documentos. Semelhante ao
| |
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. | |
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 | |
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. | |
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). | |
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 | |
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
| |
Substitui um documento pelo documento incorporado especificado. A operação substitui todos os campos existentes no documento de entrada, incluindo o campo
| |
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.
| |
Adiciona novos campos aos documentos. Semelhante ao
| |
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. | |
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. |
Estágios (db.aggregate
)
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 . |
Estágios disponíveis para atualizações
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:
$addFields
e seu alias$set
$replaceRoot
e seu nome alternativo$replaceWith
.
Expressões
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.
Caminhos do campo
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.
Variáveis de agregação
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.
Literais
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
.
Objetos de expressão
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.
Expressões do operador
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.
Operadores de expressões aritméticas
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. |
Operadores de expressão de array
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 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 . | |
Aplica uma subexpressão a cada elemento de uma matriz e
retorna a matriz de valores resultantes em ordem. Aceita parâmetros
nomeados. | |
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. | |
Mesclar dois arrays juntos. |
Operadores de expressão booleana
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. |
Operadores de expressão de comparação
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. |
Operadores de Expressão Condicional
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. |
Operadores de expressão de agregação personalizada
Nome | Descrição |
---|---|
Define uma função de acumulação personalizada. | |
Define uma função personalizada. |
Operadores de expressão de Tamanho de Dados
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. |
Operadores de Expressão de Data
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. | |
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. |
Operador de expressão literal
Operadores diversos
Nome | Descrição |
---|---|
Retorna o valor de um campo especificado de um documento. Você pode usar 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. |
Operadores de expressão de objeto
Nome | Descrição |
---|---|
Combina vários documentos em um único documento. Novidade na versão 3.6. | |
Converte um documento em uma matriz de documentos representando pares chave/valor. Novidade na versão 3.6. | |
Adiciona, atualiza ou remove um campo especificado em um documento. Você pode usar Novidades na versão 5.0. |
Definir operadores de expressão
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, incluindo quando o primeiro for igual ao segundo; ou seja, não é um subconjunto estrito. Aceita exatamente duas expressões de argumento. | |
Retorna um conjunto com elementos que aparecem em qualquer conjunto de entrada. |
Operadores de expressão de string
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. | |
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. | |
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 de pontos de código UTF-8 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 no índice (baseado em zero) do ponto de código (code point) UTF-8 especificado na string e continua com o 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. | |
Remove o espaço em branco ou os caracteres especificados do início e fim de uma string. | |
Converte uma string em maiúsculas. Aceita uma única expressão
de argumento. |
Operador de expressão de texto
Nome | Descrição |
---|---|
Acesse os metadados disponíveis por documento relacionados à
operação de agregação. |
Operadores de expressão de trigonometria
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. |
Operadores de expressão de tipo
Nome | Descrição |
---|---|
Converte um valor para um tipo especificado. | |
Converte o valor em booleano. | |
Converte o valor para uma data. | |
Converte o valor para um Decimal128. | |
Converte o valor em double. | |
Converte o valor para um número inteiro. | |
Converte o valor para um longo. | |
Converte o valor para um ObjectId. | |
Converte o valor para uma string. | |
Retorne o tipo de dados BSON do campo. |
Acumuladores ($group, $bucket, $bucketAuto, $setWindowFields
)
Operadores acumuladores de agregação:
Mantenha seu estado à medida que os documentos progridem no pipeline da agregação.
Retornar totais, maxima, minima e outros valores.
Pode ser usado nestes estágios do pipeline de agregação:
$setWindowFields
a partir do MongoDB 5.0 (exceto quando você estiver usando os operadores$accumulator
ou , que não$mergeObjects
$setWindowFields
podem ser usados com )
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 | |
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 | |
Retorna o número de documentos em um grupo. Diferente do estágio Novidade na versão 5.0: Disponível nos estágios | |
Retorna o resultado de uma expressão para o primeiro documento em um grupo. Alterado na versão 5.0: Disponível no estágio | |
Retorna o resultado de uma expressão para o último documento em um grupo. Alterado na versão 5.0: Disponível no estágio | |
Retorna o valor de expressão mais alto para cada grupo. Alterado na versão 5.0: Disponível no estágio | |
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 | |
Retorna uma matriz de valores de expressão para documentos em cada grupo. Alterado na versão 5.0: Disponível no estágio | |
Retorna o desvio padrão da população dos valores de entrada. Alterado na versão 5.0: Disponível no estágio | |
Retorna o desvio padrão da amostra dos valores de entrada. Alterado na versão 5.0: Disponível no estágio | |
Retorna uma soma de valores numéricos. Ignora valores não numéricos. Alterado na versão 5.0: Disponível no estágio |
Acumuladores (em outras etapas)
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 resultado de uma expressão para o primeiro documento em um grupo. | |
Retorna o resultado de uma expressão para o último documento em um grupo. | |
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. |
Operadores de expressão variável
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. |
Operadores de Janela
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 | |
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 | |
Retorna o número de documentos no grupo ou janela. Diferente do estágio 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 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 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 resultado de uma expressão para o primeiro documento em um grupo ou janela. Alterado na versão 5.0: Disponível no estágio | |
Retorna a aproximação da área abaixo de uma curva. Novidades na versão 5.0. | |
Retorna o resultado de uma expressão para o último documento em um grupo ou janela. Alterado na versão 5.0: Disponível no estágio | |
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 | |
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 | |
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 | |
Retorna a posição do documento (conhecida como classificação) em relação a outros documentos na partição 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 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 | |
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 | |
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 |