Agregação no MongoDB: pipeline e sintaxe

Publicados: 2020-09-23

Índice

Introdução

MongoDB é uma forma de meio de armazenamento de dados de alto volume. Ele atua como um banco de dados não relacional com consultas de documentos. A unidade básica no MongoDB são os pares chave-valor dos documentos na coleção do MongoDB. Tornou-se um meio muito benéfico a partir do início dos anos 2000.

A agregação no MongoDB é um framework que nos permite realizar várias tarefas computacionais em documentos em uma ou mais coleções do MongoDB. É uma maneira eficaz de gerar relatórios ou um punhado de métricas de dados para interpretação de diferentes documentos. A estrutura é denominada MongoDB, pois agrega vários documentos para formar resultados unidos e combinados.

A agregação no MongoDB contém principalmente a estrutura do pipeline. O conceito básico subjacente do pipeline é que a entrada é obtida de uma coleção do MongoDB e os documentos são passados ​​por uma série de estágios para produzir uma saída unificada finalmente. Essa ideia é muito semelhante ao conceito de pipeline do Linux, ou seja, Bash.

Principais recursos do MongoDB

Há muitas razões pelas quais este sistema de banco de dados é amplamente utilizado. Algumas características especiais são mencionadas abaixo:

  • MongoDB, sendo um banco de dados NoSQL, é altamente flexível de usar. É orientado a documentos.
  • Os pares chave-valor podem indexar os campos dentro do documento. Esta é uma característica muito especial do MongoDB.
  • O MongoDB divide um grande conjunto de dados em pequenas instâncias usando um conceito de fragmentação. Dessa forma, ele pode rodar em vários servidores, mantendo as instâncias em equilíbrio.
  • As consultas no MongoDB podem retornar campos específicos em um documento.

Leia: Ideias e tópicos do projeto MongoDB

Por que a agregação no MongoDB é útil?

Pode haver momentos em que o processamento de um milhão de arquivos incorporados pode ser necessário. No entanto, isso pode causar um estouro na pilha do servidor e fazer com que o processo seja encerrado. A restrição de processar um grande número de arquivos incorporados favoreceu o aprimoramento do processo de digitalização ao associar os arquivos.

Portanto, a operação de agregação foi projetada para computar os documentos em diferentes etapas e mostrar o efeito cumulativo como resultado e devolvê-lo. A técnica de correspondência de geração de resultados revolucionou os problemas de um grande número de arquivos. Portanto, a estrutura de agregação é essencial.

Essa estrutura pode executar várias operações de consulta em arquivos diferentes simultaneamente. Tem muita semelhança com consultas de banco de dados relacionais.

Confira: Comandos mais comuns do MongoDB

O que é o Pipeline de Agregação?

Um pipeline é uma estrutura de estágios contínuos projetados para executar tarefas separadas que, juntas, resolvem um objetivo unificado. Aqui no MongoDB Aggregation , esse framework atende ao processo de computação e manipula os documentos. Muitos documentos da coleção MongoDB são dados como entrada e específicos para a metodologia; uma tarefa específica é executada em cada estágio.

Posteriormente, todos os resultados são unidos coletivamente e são calculadas as métricas cumulativas, que são mostradas como saída. A saída é bastante semelhante às saídas de consulta fornecidas por bancos de dados relacionais, ou seja, um fluxo de documentos para trabalhar adicionalmente. Mais tarde, pode ser usado na geração de relatórios de criação de sites.

Assim, cada estágio atua como uma unidade de processamento aqui. Para cada estágio interno, a saída do estágio anterior atua como entrada. Além disso, filtros adicionais podem ser adicionados no estágio inicial. Os estágios geralmente são projetados com muitos hiperparâmetros. Para isso, alguns knobs ou botões de sintonia são fornecidos para controlá-los. A alteração desses hiperparâmetros afeta os resultados desse estágio. Isso parametrizou a tarefa que se está interessado em realizar. Dessa forma, um estágio executa uma tarefa genérica.

Pode haver situações em que se queira incluir um tipo semelhante de estágio várias vezes em um pipeline específico. Por exemplo, pode haver um filtro presente na parte inicial para não fazer toda a coleção passar. Mas mais tarde, após algum processamento, outro filtro pode ser necessário para um critério diferente.

Sintaxe

Existe um formato específico no qual as consultas de agregação são construídas. A sintaxe e o formato do código são mostrados abaixo.

db.Collection_Name.aggregate([

{ $correspondência: {“_id_field_”: valor}}

{ $grupo: {“_id_field_”: valor}}

{ $sort: {“_id_field_”: valor}}

]);

Comandos de pipeline

  • Comandos Estruturais : Os comandos estruturais ajudam a organizar os documentos e torná-los adequados para operações de manipulação de dados. Existem dois comandos estruturais principais, que são usados ​​com muita frequência.
  1. Correspondência : Este é o estágio de filtragem. Esta etapa elimina os documentos que não são importantes. Este comando tem muita semelhança com a função WHERE do SQL.

db.clientes.aggregate([

{ $correspondência: {“zip”: 700068}}

]);

O trecho de código acima retorna os documentos de todos os clientes que moram no CEP 700068, das Coleções do MongoDB.

1. Agrupamento : Após filtrar os documentos, é necessário o agrupamento específico. Isso permite formar subconjuntos de toda a coleção. Além disso, os documentos podem ser agrupados em semelhanças semelhantes. O clustering ajuda a realizar operações semelhantes neles juntos.

db.clientes.aggregate([

{ $correspondência: {“zip”: 700068}}

{

$grupo: {

_id: null,

Contar: {

$ soma: 1

}

}

]);

$group habilita o agrupamento dos documentos para realizar operações de transformação. O comando _id lida com a preservação de campos de dados.

2. Classificar : Isso ajuda a classificar os documentos em ordem crescente ou decrescente com base em qualquer campo de consulta específico.

db.clientes.aggregate([

{ $correspondência: {“zip”: 700068}}

{

$grupo: {

_id: null,

Contar: {

$ soma: 1

}

}

{

$ordenar: {

{“zip”: -1}

}

}

]);

Isso classificará os documentos com base em seu CEP.

  • Comandos operacionais : Existem muitos comandos operacionais no MongoDB Aggregation , que ajudam a executar as tarefas de dados. Alguns dos comandos mais importantes estão descritos abaixo:
  1. Soma ($sum) : Retorna a soma de todos os valores dos documentos.
  2. Máximo ($max) : Gera o valor máximo de uma variável específica de todos os documentos.
  3. Mínimo ($min) : Retorna o valor mínimo de uma variável.
  4. Average ($avg) : Calcula a média dos valores de cada documento.
  5. Push ($push) : Acrescenta um valor a um array.
  6. First ($first) : Retorna o primeiro documento de uma coleção.
  7. Last ($last) : Retorna o último documento de uma coleção.
  8. Adding to Set ($addToSet) : Acrescenta um valor a um array de um documento sem duplicá-lo.

Leia também: Escopo futuro do MongoDB

Empacotando

Nesta era de Big Data, bancos de dados não relacionais são muito úteis para lidar com grandes conjuntos de amostras. Atualmente, a área de ciência e desenvolvimento de dados está bem acostumada ao uso do MongoDB. Essa estrutura é utilizável com linguagens populares como Java, JavaScript, Python e muitas outras linguagens. Ter conhecimento do MongoDB e uma mão sólida com uma estrutura de agregação pode contribuir para uma carreira dos sonhos.

Se você já se interessou pelo MongoDB agregação e procure alguns cursos on-line, confira nosso programa PG Diploma in Software Development Specialization in Big Data, projetado para profissionais que trabalham e fornece mais de 7 estudos de caso e projetos, abrange 14 linguagens e ferramentas de programação, workshops práticos práticos, mais mais de 400 horas de aprendizado rigoroso e assistência para colocação de emprego nas principais empresas.

Nesse caso, este curso certamente o ajudará a obter todo o conhecimento sobre estruturas e algoritmos de dados, programação Java, Fundamentos de Banco de Dados, HTML, CSS, JavaScript, Angular, Java, Análise e Design Orientado a Objetos.

Mais de 250 horas de ensino on-line, sessões individuais com especialistas do setor e muito mais estão disponíveis neste curso. Além disso, o curso terá curadoria de especialistas no assunto da upGrad, e você terá oportunidades de colocação das principais empresas de TI, empresas baseadas em produtos e start-ups.

Aprenda cursos de desenvolvimento de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Lidere a revolução tecnológica orientada a dados

Programa Avançado de Certificação em Big Data do ITT Bangalore