Aggregazione in MongoDB: pipeline e sintassi

Pubblicato: 2020-09-23

Sommario

introduzione

MongoDB è una forma di supporto di archiviazione dati ad alto volume. Funziona come un database non relazionale con query sui documenti. L'unità di base in MongoDB sono le coppie chiave-valore dei documenti nella raccolta MongoDB. È diventato un mezzo molto vantaggioso dai primi anni 2000.

L'aggregazione in MongoDB è un framework che ci consente di eseguire varie attività di calcolo su documenti in una o più raccolte MongoDB. È un modo efficace per generare report o una manciata di metriche di dati per l'interpretazione da documenti diversi. Il framework è denominato MongoDB in quanto aggrega più documenti per formare risultati uniti e combinati.

L' aggregazione in MongoDB contiene principalmente il framework della pipeline. Il concetto di base della pipeline è che l'input viene preso da una raccolta MongoDB e che i documenti vengono passati attraverso una serie di fasi per produrre finalmente un output unificato. Questa idea è molto simile al concetto di pipeline Linux, cioè Bash.

Caratteristiche principali di MongoDB

Ci sono molte ragioni per cui questo sistema di database è ampiamente utilizzato. Alcune caratteristiche speciali sono menzionate di seguito:

  • MongoDB, essendo un database NoSQL, è altamente flessibile da usare. È orientato ai documenti.
  • Le coppie chiave-valore possono indicizzare i campi all'interno del documento. Questa è una caratteristica molto speciale di MongoDB.
  • MongoDB suddivide un set di dati di grandi dimensioni in piccole istanze utilizzando un concetto di sharding. In questo modo, può essere eseguito su molti server, mantenendo le istanze in equilibrio.
  • Le query in MongoDB possono restituire campi specifici in un documento.

Leggi: Idee e argomenti del progetto MongoDB

Perché l'aggregazione in MongoDB è utile?

Ci possono essere momenti in cui potrebbe essere necessaria l'elaborazione di un milione di file incorporati. Tuttavia, ciò può causare un overflow nello stack del server e l'interruzione del processo. Il vincolo di elaborare un gran numero di file incorporati ha assecondato il miglioramento del processo di scansione associando i file insieme.

Pertanto, l'operazione di aggregazione è stata progettata per calcolare i documenti in diverse fasi e mostrare l'effetto cumulativo di conseguenza e restituirlo. La tecnica di corrispondenza della generazione dei risultati ha rivoluzionato i problemi di un numero enorme di file. Quindi, il quadro di aggregazione è essenziale.

Questo framework può eseguire molte operazioni di query su file diversi contemporaneamente. Ha molta somiglianza con le query di database relazionali.

Dai un'occhiata: i comandi MongoDB più comuni

Cos'è la pipeline di aggregazione?

Una pipeline è una struttura di fasi continue progettate per eseguire attività separate che insieme risolvono un obiettivo unificato. Qui in MongoDB Aggregation , questo framework serve il processo di calcolo e manipola i documenti. Molti documenti della collezione MongoDB sono forniti come input e specifici per la metodologia; in ogni fase viene eseguito un compito particolare.

Successivamente, tutti i risultati vengono uniti collettivamente e vengono calcolate le metriche cumulative, che vengono visualizzate come output. L'output è abbastanza simile agli output delle query forniti dai database relazionali, ovvero un flusso di documenti su cui lavorare in aggiunta. Successivamente, può essere utilizzato nella generazione di report per la creazione di siti Web.

Quindi, qui ogni fase funge da unità di elaborazione. Per ogni stadio interno, l'uscita dello stadio precedente funge da input. Inoltre, nella fase iniziale è possibile aggiungere filtri aggiuntivi. Le fasi sono spesso progettate con molti iperparametri. A tale scopo, sono previste alcune manopole o pulsanti di sintonia per controllarli. La modifica di questi iperparametri influisce sui risultati di quella fase. Questo ha parametrizzato il compito che uno è interessato a svolgere. In questo modo, una fase esegue un compito generico.

Ci possono essere situazioni in cui si potrebbe voler includere un tipo simile di fase più volte in una particolare pipeline. Ad esempio, nella parte iniziale può essere presente un filtro per non far passare l'intera collezione. Ma in seguito, dopo alcune elaborazioni, potrebbe essere necessario un altro filtro per un criterio diverso.

Sintassi

Esiste un formato specifico in cui vengono create le query di aggregazione. La sintassi e il formato del codice sono mostrati di seguito.

db.Nome_raccolta.aggregate([

{$corrispondenza: {"_id_field_": valore}}

{ $gruppo: {"_id_field_": valore}}

{ $sort: {"_id_field_": valore}}

]);

Comandi della pipeline

  • Comandi strutturali : i comandi strutturali aiutano a organizzare i documenti e a renderli adatti alle operazioni di manipolazione dei dati. Ci sono due comandi strutturali principali, che vengono usati molto spesso.
  1. Corrispondenza : questa è la fase di filtraggio. Questa fase elimina i documenti di cui non si cura. Questo comando ha molte somiglianze con la funzione WHERE di SQL.

db.customers.aggregate([

{$corrispondenza: {"zip": 700068}}

]);

Il codice sopra riportato restituisce i documenti di tutti i clienti che vivono nel codice postale 700068, dalle Collezioni MongoDB.

1. Raggruppamento : dopo aver filtrato i documenti, è necessario il raggruppamento specifico. Ciò consente di formare sottoinsiemi dell'intera raccolta. Inoltre, i documenti possono essere raggruppati su elementi comuni simili. Il clustering aiuta a eseguire operazioni simili su di essi insieme.

db.customers.aggregate([

{$corrispondenza: {"zip": 700068}}

{

$gruppo: {

_id: nullo,

Contano: {

$ somma: 1

}

}

]);

$group abilita il raggruppamento dei documenti per eseguire operazioni di trasformazione. Il comando _id si occupa di preservare i campi di dati.

2. Ordina : aiuta a ordinare i documenti in ordine crescente o decrescente in base a qualsiasi campo di query specifico.

db.customers.aggregate([

{$corrispondenza: {"zip": 700068}}

{

$gruppo: {

_id: nullo,

Contano: {

$ somma: 1

}

}

{

$sort: {

{"zip": -1}

}

}

]);

Questo ordinerà i documenti in base al loro codice postale.

  • Comandi operativi : ci sono molti comandi operativi in ​​MongoDB Aggregation , che aiutano a eseguire le attività sui dati. Alcuni dei comandi più importanti sono descritti di seguito:
  1. Somma ($sum) : Restituisce l'aggiunta di tutti i valori dai documenti.
  2. Massimo ($max) : restituisce il valore massimo di una particolare variabile da tutti i documenti.
  3. Minimo ($min) : Restituisce il valore minimo di una variabile.
  4. Media ($media) : calcola la media dei valori di ciascun documento.
  5. Push ($push) : Aggiunge un valore a un array.
  6. First ($first) : Restituisce il primo documento da una raccolta.
  7. Last ($last) : Restituisce l'ultimo documento da una raccolta.
  8. Aggiunta a set ($addToSet) : Aggiunge un valore a una matrice di un documento senza duplicarlo.

Leggi anche: Ambito futuro di MongoDB

Avvolgendo

In questa era di Big Data, i database non relazionali sono molto utili per gestire grandi set di campioni. Al giorno d'oggi, il campo della scienza dei dati e dello sviluppo è ben abituato all'uso di MongoDB. Questo framework è utilizzabile con linguaggi popolari come Java, JavaScript, Python e molti altri linguaggi. Avere conoscenza di MongoDB e una mano sana con una struttura di aggregazione può creare una carriera da sogno.

Se sei già interessato a MongoDB aggregazione e cerca alcuni corsi online, dai un'occhiata al nostro PG Diploma in Software Development Specialization in Big Data programma che è progettato per i professionisti che lavorano e fornisce oltre 7 casi di studio e progetti, copre 14 linguaggi e strumenti di programmazione, workshop pratici pratici, altro oltre 400 ore di rigoroso apprendimento e assistenza all'inserimento lavorativo con le migliori aziende.

In tal caso, questo corso ti aiuterà sicuramente ad acquisire tutte le conoscenze relative a strutture e algoritmi di dati, programmazione Java, Foundation of Database, HTML, CSS, JavaScript, Angular, Java, Object-Oriented Analysis & Design.

In questo corso sono disponibili più di 250 ore di insegnamento online, sessioni individuali con esperti del settore e molto altro ancora. Oltre a questo, il corso sarà curato da esperti in materia di upGrad e ti verranno fornite opportunità di collocamento dalle migliori società IT, società basate su prodotti e start-up.

Impara i corsi di sviluppo software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Guida la rivoluzione tecnologica basata sui dati

Programma di certificazione avanzato in Big Data da IIIT Bangalore