Operazioni CRUD in MongoDB: tutorial con esempi

Pubblicato: 2020-02-05

Con la continua evoluzione del Web, ora stiamo vedendo come MongoDB e altri database di oggetti di documenti stanno emergendo come alternative ai database basati su SQL convenzionali. Esistono diversi vantaggi che questi database di oggetti documento hanno rispetto ai database SQL e i più importanti di tutti questi vantaggi includono scalabilità e agilità.

È importante notare che i dati in MongoDB sono archiviati in formato di documenti JSON (BSON) con codifica binaria. Questo formato potrebbe richiedere di contenere matrici di documenti incorporati o, in questo caso, valori. Un documento forma un record in MongoDB, che è una struttura creata da coppie di valori e campi.

Discutiamo ora di operazioni di creazione, aggiornamento, recupero ed eliminazione o operazioni CRUD in MongoDB. Queste funzioni possono essere ampiamente classificate come funzioni di modifica dei dati in MongoDB. Questi possono essere utilizzati solo per una singola raccolta. Inserisci è una funzione in MongoDB che può essere utilizzata per aggiungere dati al database.

Sommario

Elenco delle operazioni CRUD in MongoDB

1. Creazione di documenti

Come vengono creati gli oggetti utilizzando MongoDB? MongoDB utilizza BSON, una rappresentazione binaria di JSON, per la sua archiviazione. Quindi, è abbastanza facile capire che i metodi utilizzati per eseguire diverse operazioni nel database hanno qualcosa a che fare con JavaScript. Creiamo un utente e una raccolta di utenti. È anche importante notare che le tabelle in SQL sono equivalenti alle raccolte in MongoDB.
db.users.save({nome:”Mike”, lavoro:”dottore”,e-mail:”[email protected]”})
Questo esempio utilizza MongoDB save() per salvare i dati nella raccolta.

2. Inserimento di documenti

  • Inserimento batch : questa funzione consente di aggiungere un elenco di documenti contemporaneamente a un database. Un batch, in un determinato momento, può contenere centinaia o addirittura migliaia di documenti. Con la capacità di inserire più documenti, questa funzione funziona molto più velocemente di altre funzioni di inserimento. Un inserimento batch non richiede che tu sollevi richieste individuali per centinaia o migliaia di documenti. Funziona invece come una richiesta TCP (Transmission Control Protocol). Il tempo impiegato durante gli inserimenti è sempre notevolmente inferiore in quanto non è coinvolta alcuna attività di elaborazione dell'intestazione. Ogni documento che deve essere inserito porta un'intestazione che trasmette al database l'operazione che deve essere eseguita. Per lo più, gli inserimenti batch vengono utilizzati per conservare i dati dei sensori e i registri del server.
  • Mongoimport : Mongoimport è uno strumento da riga di comando che viene utilizzato al posto dell'inserimento batch nei dati essenziali da MySQL, Oracle o qualsiasi altro sistema di gestione dei database relazionali (RDBMS). Ci sono momenti in cui potrebbe essere necessario apportare modifiche ai documenti – aggiungere un ID personalizzato – prima di archiviarlo su MongoDB. Un'altra cosa importante che dovresti sapere è che MongoDB accetta solo messaggi pesanti fino a 16 MB. Quindi, l'inserimento batch pone una restrizione sul numero di messaggi che può avere.
  • Inserimento di massa non ordinato: in questa funzione, MongoDB scrive le operazioni senza seguire alcun ordine. In caso di errore, proseguirà con le operazioni di scrittura che vengono lasciate senza alcuna interruzione. MongoDB forma un gruppo di operazioni non ordinate mentre le esegue. MongoDB può anche cercare di migliorare le prestazioni riordinando le operazioni elencate prima dell'esecuzione. Pertanto, le applicazioni non devono fare affidamento su una sequenza quando si considera questa funzione per l'inserimento in blocco. Bulk.getOperations() può essere utilizzato per vedere come MongoDB raggruppa un insieme di operazioni e quindi le esegue. Questo comando può essere utilizzato per aggiungere tre documenti contemporaneamente ma senza alcun ordine.
  • Inserimento di massa ordinato: in questa funzione, MongoDB segue una sequenza durante la scrittura delle operazioni. Un errore durante qualsiasi operazione di scrittura fa sì che MongoDB non esegua altre operazioni di scrittura. Le operazioni ordinate sono raggruppate tenendo conto della loro continuità e tipologia. Le operazioni ordinate adiacenti appartengono alla stessa classe sono raggruppate.

Ad esempio, se un elenco ordinato ha un'operazione di inserimento seguita da un'operazione di eliminazione seguita da due operazioni di aggiornamento, MongoDB creerà tre gruppi per impilarli. Il primo gruppo consisterà in un'operazione di inserimento. Il secondo gruppo avrà un'operazione di eliminazione. Il terzo gruppo metterà insieme le due operazioni di aggiornamento.

Si prevede che le future edizioni di MongoDB affronteranno in modo appropriato questo comportamento. Ciascun gruppo di elenchi in blocco ordinati non può avere più di 1000 operazioni. Nel caso in cui il numero superi tale limite massimo, MongoDB crea gruppi più piccoli di 1000 operazioni o meno, per aderire a questo limite. Quindi, se ci sono 7000 operazioni in blocco ordinate, ci saranno sette gruppi, ciascuno composto da 1000 operazioni in blocco. Per vedere come vengono eseguiti il ​​raggruppamento e l'esecuzione, eseguire prima il comando di inserimento in blocco e quindi utilizzare il comando Bulk.getOperations. Questo comando può essere utilizzato per aggiungere tre documenti in ordine.

3. Recupero/lettura di documenti

Ogni query in MongoDB è diretta a documenti particolari. MongoDB identifica i documenti in base alla condizione definita in una query e quindi restituisce tali documenti alla destinazione prevista. Una query di recupero di documenti può avere una proiezione che menziona condizioni o criteri che corrispondono ai campi del documento che deve essere restituito.

Le query possono essere modificate per inserire salti, limiti e ordinamenti.

Discutiamo ora come viene specificata la condizione di uguaglianza. Utilizzare il comando findOne() per identificare il primo record di un documento. Per visualizzare i risultati nel formato corretto, puoi utilizzare il metodo grazioso.

Utilizzare la query db.items.find().pretty() per identificare tutti i documenti elencati in una raccolta e visualizzarli tutti in un formato standardizzato. Puoi utilizzare una query vuota per selezionare tutti i documenti – db.items.find( {} ) – questa query ha una clausola di query vuota alla fine – quindi identificherà tutti i documenti elencati in una raccolta.

Non specificare il metodo find con un documento di query e utilizzare una query vuota forniranno entrambi lo stesso risultato. Quindi, le query db.items.find( {} ) e db.items.find() sono equivalenti in termini di risultato per cui vengono utilizzate.

Puoi manipolare la query e utilizzare il metodo del cursore di query mentre il metodo di conteggio ti consente di scoprire il numero di documenti in una raccolta che corrispondono alla tua query. db.items.count()

4. Aggiornamento dei documenti

È necessario utilizzare il metodo update() per aggiornare i documenti in MongoDB. Il metodo di aggiornamento presenta due elementi importanti: query e aggiornamento. Il parametro di query viene prima seguito dal parametro di aggiornamento. Ecco un esempio

db.users.update({name:"Mike"}, {età: 32})

Tuttavia, questo non è il modo giusto per aggiornare una coppia di valori, che in questo caso è l'età. Con questo, sovrascriverai tutto nel documento. L'unica cosa che rimarrà nell'età. Quindi, quando dobbiamo aggiornare una singola coppia di valori nell'intero documento, dobbiamo utilizzare alcune parole chiave.

db.users.update({nome: "Mike"}, { $set: { età: 28}})

Questo non sovrascriverà nulla. Conserveresti tutte le informazioni contenute nel documento. Verrà aggiornato solo il valore dell'età.

5. Rimozione di documenti

Utilizzare il metodo remove – db.courses.remove() – per rimuovere documenti da una raccolta. Questo comando rimuoverà tutti i documenti dalla raccolta data. Ciò che non rimuoverà sono gli indici e la raccolta stessa. A volte, il comando remove può accettare una query come parametro. Se desideri rimuovere i documenti che soddisfano i criteri menzionati nella query, utilizza il comando db.items.remove({"item": "Penna").

Utilizzare il comando db.items.remove({” item” : “Bag},1) per rimuovere solo un documento da una raccolta. Per rimuovere tutti i documenti, la raccolta e gli indici, utilizzare il comando db.courses.drop() (metodo drop).

Conclusione

Se sei interessato a saperne di più sui Big Data, dai un'occhiata al nostro PG Diploma in Software Development Specialization nel programma Big Data, progettato per professionisti che lavorano e fornisce oltre 7 casi di studio e progetti, copre 14 linguaggi e strumenti di programmazione, pratiche pratiche workshop, oltre 400 ore di apprendimento rigoroso e assistenza all'inserimento lavorativo con le migliori aziende.

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

Oltre 400 ore di apprendimento. 14 Lingue e strumenti. Stato Alumni IIITB.
Programma di certificazione avanzato in Big Data da IIIT Bangalore