pipeline

Aqui, você pode ver, pegamos uma coleção e passamos por um pipeline. Esse pipeline consiste em certas etapas, onde certas operadores modifique os documentos na coleção usando várias técnicas. Finalmente, a saída é retornada ao aplicativo que chama a consulta.

Compare-o com uma consulta simples, como encontrar. Certamente, ele funciona da maioria das maneiras, mas não é realmente útil quando você deseja modificar os dados e recuperá-los. Você precisará buscar os documentos e modificá-los adequadamente no aplicativo no servidor ou, pior, os enviará ao cliente e permitirá que o código de front-end o modifique para você. Nos dois casos, há um desperdício de recursos e largura de banda. Portanto, a estrutura de agregação resolve esse problema de maneira organizada. Vamos ver como isso acontece com os operadores.

Operadores de dutos

No MongoDB, o pipeline é uma matriz composta por vários operadores, que coletam vários documentos e emitem documentos modificados de acordo com as regras especificadas pelo programador. O próximo operador recebe os documentos gravados pelo operador anterior, portanto, é chamado de pipeline. Você pode ter muitos operadores em um pipeline e esses operadores também podem ser repetidos, ao contrário das consultas regulares do MongoDB.

Operadores comuns de pipeline

Vamos dar uma olhada em alguns operadores de pipeline comuns no MongoDB.

$ group

Esse operador permite agrupar vários documentos com base em um determinado campo nos documentos. Também pode ser usado para agrupar os vários campos nos documentos. Acredito muito no ditado que diz que uma imagem vale mais que mil palavras. Um vídeo vale 1000 fotos (bem, tecnicamente muito mais fotos, mas tudo bem), então vamos ver um vídeo rápido sobre isso:

$ match

O operador de correspondência de pipeline trabalha de maneira muito semelhante à maneira como o operador de localização regular funciona. O bom disso, no entanto, é que ele pode ser usado várias vezes porque você está em um ambiente de pipeline! Isso o torna poderoso. Vamos ver como é usado em uma coleção:

$ limit

O operador $ skip pipeline pula os primeiros N documentos e passa o restante dos documentos para o próximo operador. Vamos ver um exemplo rápido:

$ pular

O operador $ skip pipeline pula os primeiros N documentos e passa o restante dos documentos para o próximo operador. Vamos ver um exemplo rápido:

$ desenrolar

Este operador é pessoalmente o meu favorito. $ unwind pega um campo de matriz e o explode em vários N documentos secundários, com o i-ésimo documento contendo o i-ésimo valor particular da matriz como o valor do nome do campo. Combinado com outros operadores, como $ group e $ match, isso se torna muito poderoso para o processamento de dados. Parece confuso? Vejamos um exemplo simples:

$ projeto

O operador do projeto permite coletar vários campos de todos os documentos e descartar o restante. Não apenas isso, mas você também pode renomear os campos arrancados, concat strings, remover substrings e muito mais! Vamos ver como isso funciona em poucas palavras:

Práticas recomendadas para o uso da estrutura de agregação

Com grandes poderes vem grandes responsabilidades. Você também pode explorar facilmente a estrutura de agregação para fazer consultas simples, por isso é importante verificar se você não está escrevendo consultas ruins no banco de dados. Para começar, lembre-se dos seguintes pontos:

  1. O MongoDB rejeitaria qualquer operador com mais de 100 MB de RAM e geraria um erro. Portanto, reduza os dados o mais rápido possível, pois um único operador não deve ocupar mais de 100 MB de memória.
  2. Ordem importa! Colocar $ match no início reduziria o número de documentos passados ​​para o restante do pipeline, e colocar $ project reduziria ainda mais o tamanho de um documento individual, eliminando os campos.
  3. Por fim, certifique-se de fazer todo o trabalho que requer o uso de campos indexados (classificação, correspondência etc.) antes de usar operadores como $ project ou $ unwind. Isso ocorre porque esses operadores criam novos documentos que não possuem os índices do documento original.

Conclusão

O MongoDB é uma ótima ferramenta de banco de dados e pode ser realmente útil para pequenas empresas e startups interagirem rapidamente devido a suas restrições frouxas e natureza indulgente. Eu mesmo estou usando o MongoDB em codedamn – uma plataforma para desenvolvedores como você, onde todos aprendem e se conectam!

Paz!