Gráfico de mapeamento SQL para agregação
Nesta página
Opipeline de agregação do permite que o MongoDB forneça recursos de agregação nativos que correspondem a muitas operações comuns de agregação de dados no SQL.
A tabela a seguir fornece uma visão geral dos termos, funções e conceitos de agregação SQL comuns e dos operadores de agregaçãoMongoDB correspondentes:
Termos, funções e conceitos do SQL | Operadores de agregação do MongoDB |
---|---|
WHERE | |
AGRUPAR POR | |
HAVING | |
SELECT | |
ORDENAR POR | |
LIMIT | |
SUM() | |
COUNT() | |
juntar | |
SELECIONAR EM NEW_TABLE | |
MESCLAR NA TABELA | |
UNION ALL |
Para obter uma lista de todos os operadores de expressão e pipeline de agregação, consulte:
Exemplos
A tabela a seguir apresenta uma referência rápida de declarações de agregação SQL e as declarações MongoDB correspondentes. Os exemplos na tabela pressupõem as seguintes condições:
Os exemplos SQL assumem duas tabelas,
orders
eorder_lineitem
que participam pelas colunasorder_lineitem.order_id
eorders.id
.Os exemplos do MongoDB assumem uma coleção
orders
que contém documentos do seguinte protótipo:{ cust_id: "abc123", ord_date: ISODate("2012-11-02T17:04:11.102Z"), status: 'A', price: 50, items: [ { sku: "xxx", qty: 25, price: 1 }, { sku: "yyy", qty: 25, price: 1 } ] }
Exemplo de SQL | Exemplo de MongoDB | Descrição | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| Contagem de todos os registros de orders | ||||||||||||||||||||||||||
|
| Soma o campo price de orders | ||||||||||||||||||||||||||
|
| Para cada cust_id único, soma o campo price . | ||||||||||||||||||||||||||
|
| Para cada cust_id exclusivo, some o campo price , resultados classificados por soma. | ||||||||||||||||||||||||||
|
| Para cada agrupamento exclusivo cust_id , ord_date , some o campo price . Exclui a parte de tempo da data. | ||||||||||||||||||||||||||
|
| Para cust_id com múltiplos registros, retorne o cust_id e a contagem de registro correspondente. | ||||||||||||||||||||||||||
|
| Para cada agrupamento exclusivo de cust_id , ord_date , some o campo price e retorne somente quando a soma for maior que 250. Exclui a parte de tempo da data. | ||||||||||||||||||||||||||
|
| Para cada cust_id único com status A , soma o campo price . | ||||||||||||||||||||||||||
|
| Para cada cust_id exclusivo com status A , some o campo price e retorne apenas quando a soma for maior que 250. | ||||||||||||||||||||||||||
|
| Para cada cust_id único, soma os campos de item de linha qty correspondentes associados aos pedidos. | ||||||||||||||||||||||||||
|
| Conte o número de agrupamentos cust_id , ord_date distintos. Exclui a parte de tempo da data. |