Agregare în MongoDB: Pipeline și Sintaxă

Publicat: 2020-09-23

Cuprins

Introducere

MongoDB este o formă de mediu de stocare a datelor de mare volum. Acționează ca o bază de date non-relațională cu interogări de documente. Unitatea de bază din MongoDB sunt perechile cheie-valoare ale documentelor din colecția MongoDB. A devenit un mediu foarte benefic de la începutul anilor 2000.

Agregarea în MongoDB este un cadru care ne permite să realizăm diverse sarcini de calcul pe documente dintr-una sau mai multe colecții MongoDB. Este o modalitate eficientă de a genera rapoarte sau o mână de valori de date pentru interpretare din diferite documente. Cadrul este denumit MongoDB deoarece agregează mai multe documente pentru a forma rezultate unite și combinate.

Agregarea din MongoDB conține în primul rând cadrul pipeline. Conceptul de bază al pipelinei este că intrarea este preluată dintr-o colecție MongoDB, iar documentele sunt trecute printr-o serie de etape pentru a produce în sfârșit o ieșire unificată. Această idee este foarte asemănătoare cu conceptul de conductă Linux, adică Bash.

Caracteristicile cheie ale MongoDB

Există multe motive pentru care acest sistem de baze de date este utilizat pe scară largă. Câteva caracteristici speciale sunt menționate mai jos:

  • MongoDB, fiind o bază de date NoSQL, este foarte flexibil de utilizat. Este orientat spre documente.
  • Perechile cheie-valoare pot indexa câmpurile din interiorul documentului. Aceasta este o caracteristică foarte specială a MongoDB.
  • MongoDB împarte un set mare de date în instanțe mici folosind un concept de sharding. În acest fel, poate rula pe mai multe servere, păstrând instanțele în echilibru.
  • Interogările din MongoDB pot returna câmpuri specifice dintr-un document.

Citiți: Idei și subiecte de proiect MongoDB

De ce este utilă agregarea în MongoDB?

Pot exista momente când poate fi necesară procesarea unui milion de fișiere încorporate. Cu toate acestea, acest lucru poate provoca o depășire în stiva de server și poate duce la terminarea procesului. Constrângerea procesării unui număr mare de fișiere încorporate a permis îmbunătățirea procesului de scanare prin asocierea fișierelor împreună.

Prin urmare, operațiunea de agregare a fost concepută pentru a calcula documentele în diferite etape și a arăta efectul cumulativ ca rezultat și a-l returna. Tehnica de potrivire a generării rezultatelor a revoluționat problemele unui număr mare de fișiere. Prin urmare, cadrul de agregare este esențial.

Acest cadru poate efectua multe operații de interogare pe diferite fișiere simultan. Se aseamănă mult cu interogările relaționale ale bazei de date.

Consultați: Cele mai comune comenzi MongoDB

Ce este conducta de agregare?

O conductă este un cadru de etape continue concepute pentru a îndeplini sarcini separate care rezolvă împreună un obiectiv unificat. Aici, în MongoDB Aggregation , acest cadru servește procesului de calcul și manipulează documentele. Multe documente din colecția MongoDB sunt date ca intrare și specifice metodologiei; o anumită sarcină este îndeplinită în fiecare etapă.

Ulterior, toate rezultatele sunt unite colectiv și sunt calculate valorile cumulate, care sunt afișate ca rezultat. Ieșirea este destul de similară cu ieșirile de interogare date din bazele de date relaționale, adică un flux de documente care să funcționeze suplimentar. Mai târziu, poate fi folosit în generarea de rapoarte de creare a site-ului web.

Deci, fiecare etapă acționează ca o unitate de procesare aici. Pentru fiecare etapă internă, ieșirea din etapa anterioară acționează ca intrare. De asemenea, filtre suplimentare pot fi adăugate în etapa inițială. Etapele sunt adesea proiectate cu mulți hiperparametri. În acest scop, sunt prevăzute câteva butoane sau butoane de reglare pentru a le controla. Modificarea acestor hiperparametri afectează rezultatele acestei etape. Aceasta a parametrizat sarcina pe care este interesat să o îndeplinească. În acest fel, o etapă îndeplinește o sarcină generică.

Pot exista situații în care cineva ar putea dori să includă un tip similar de etapă de mai multe ori într-o anumită conductă. De exemplu, poate exista un filtru prezent în partea inițială pentru a nu trece întreaga colecție. Dar mai târziu, după unele procesări, poate fi necesar un alt filtru pentru un alt criteriu.

Sintaxă

Există un format specific în care sunt construite interogările de agregare. Sintaxa și formatul codului sunt prezentate mai jos.

db.Collection_Name.aggregate([

{ $match: {“_id_field_”: value}}

{ $group: {“_id_field_”: value}}

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

]);

Comenzi Pipeline

  • Comenzi structurale : comenzile structurale ajută la organizarea documentelor și le fac potrivite pentru operațiunile de manipulare a datelor. Există două comenzi structurale principale, care sunt folosite foarte des.
  1. Potrivire : aceasta este etapa de filtrare. Această etapă decupează documentele care nu sunt îngrijite. Această comandă seamănă mult cu funcția WHERE a SQL.

db.customers.aggregate([

{ $match: {„zip”: 700068}}

]);

Codul de mai sus returnează documentele tuturor clienților care locuiesc în codul poștal 700068, din Colecțiile MongoDB.

1. Grupare : După filtrarea documentelor, este necesară gruparea specifică. Acest lucru permite formarea de subseturi ale întregii colecții. De asemenea, documentele pot fi grupate pe elemente comune similare. Clustering ajută la efectuarea de operațiuni similare asupra lor împreună.

db.customers.aggregate([

{ $match: {„zip”: 700068}}

{

$grup: {

_id: nul,

Numara: {

suma $: 1

}

}

]);

$group permite gruparea documentelor pentru a efectua operațiuni de transformare. Comanda _id se ocupă cu păstrarea câmpurilor de date.

2. Sortare : Aceasta ajută la sortarea documentelor în ordine crescătoare sau descrescătoare, pe baza oricărui câmp de interogare specific.

db.customers.aggregate([

{ $match: {„zip”: 700068}}

{

$grup: {

_id: nul,

Numara: {

suma $: 1

}

}

{

$sort: {

{„zip”: -1}

}

}

]);

Aceasta va sorta documentele în funcție de codul lor poștal.

  • Comenzi operaționale : Există multe comenzi operaționale în MongoDB Aggregation , care ajută la îndeplinirea sarcinilor de date. Unele dintre cele mai importante comenzi sunt descrise mai jos:
  1. Summation ($sum) : Returnează suma tuturor valorilor din documente.
  2. Maxim ($max) : Afișează valoarea maximă a unei anumite variabile din toate documentele.
  3. Minimum ($min) : Returnează valoarea minimă a unei variabile.
  4. Media ($avg) : calculează media valorilor din fiecare document.
  5. Push ($push) : Adaugă o valoare la o matrice.
  6. First ($first) : returnează primul document dintr-o colecție.
  7. Last ($last) : Returnează ultimul document dintr-o colecție.
  8. Adăugarea la set ($addToSet) : Adaugă o valoare la o matrice a unui document fără a o duplica.

Citiți și: Scopul viitor al MongoDB

Încheierea

În această era a Big Data, bazele de date non-relaționale sunt foarte utile pentru a gestiona seturi mari de mostre. În zilele noastre, domeniul științei și dezvoltării datelor este bine obișnuit cu utilizarea MongoDB. Acest cadru este utilizabil cu limbaje populare precum Java, JavaScript, Python și multe alte limbi. Cunoașterea MongoDB și o mână solidă cu un cadru de agregare poate face o carieră de vis.

Dacă ați crescut deja interesat de MongoDB agregare și căutați câteva cursuri online, consultați programul nostru PG Diploma în Dezvoltare Software Specializare în Big Data, care este conceput pentru profesioniști care lucrează și oferă peste 7 studii de caz și proiecte, acoperă 14 limbaje și instrumente de programare, ateliere practice practice, mai mult peste 400 de ore de învățare riguroasă și asistență pentru plasarea unui loc de muncă cu firme de top.

În acest caz, acest curs vă va ajuta cu siguranță să obțineți toate cunoștințele privind structurile și algoritmii de date, programarea Java, Fundația bazei de date, HTML, CSS, JavaScript, Angular, Java, Analiză și proiectare orientate pe obiecte.

Peste 250 de ore de predare online, sesiuni individuale cu experți din industrie și multe altele sunt disponibile în acest curs. În plus, cursul va fi organizat de experți în domeniu de la upGrad și vi se vor oferi oportunități de plasare de la companii IT de top, companii bazate pe produse și start-up-uri.

Învață cursuri de dezvoltare software online de la cele mai bune universități din lume. Câștigați programe Executive PG, programe avansate de certificat sau programe de master pentru a vă accelera cariera.

Conduceți revoluția tehnologică bazată pe date

Program de certificat avansat în Big Data de la IIIT Bangalore