MongoDB è stato sviluppato per la prima volta nel 2007 da Dwight Merriman ed Eliot Horowitz quando hanno riscontrato problemi di scalabilità con i database relazionali durante lo sviluppo di applicazioni Web aziendali presso la loro azienda, nota come DoubleClick. Secondo uno degli sviluppatori, il suo nome derivava dalla parola enorme per supportare l'idea di elaborare una grande quantità di dati.
Il database è diventato un progetto open source nel 2009 mentre l'azienda offriva servizi di supporto commerciale. Molte aziende hanno adottato MongoDB per le sue caratteristiche uniche. Una di queste società era il quotidiano The New York Times e hanno utilizzato questo database per creare un'applicazione basata sul Web per inviare le foto. Nell'anno 2013, DoubleClick ha ufficialmente rinominato MongoDB Inc.
Componenti MongoDB
I componenti principali di MongoDB e il loro utilizzo includono:
- Raccolte – Le loro controparti RDBMS sono tabelle. Sono un insieme di documenti MongoDB
- Documento – La sua controparte RDBMS è Row. Questa è una raccolta di dati archiviati in formato BSON
- Campo – Questo è un singolo elemento in un documento MongoDB che contiene valori come campi e coppie di valori.
Archiviazione basata su documenti
Un documento è una struttura dati con coppie nome-valore come JSON ed è facile mappare qualsiasi oggetto personalizzato di qualsiasi linguaggio di programmazione con un documento MongoDB. Ad esempio, uno Studente l'oggetto ha attributi come name, studentid, e soggetti dove i soggetti sono una lista. Un documento per gli studenti in MongoDB sarà simile al seguente:
{
Name: "Michael",
Studentid: 1
Subjects: ["Mathematics, English, Geography"]}
Noterai che i documenti sono rappresentazioni JSON di oggetti personalizzati dalla rappresentazione sopra. Inoltre, i JOIN eccessivi vengono evitati salvando i dati sotto forma di array e documenti (incorporati) all'interno di un documento.
Aggiornamento dei documenti in MongoDB
MongoDB fornisce un aggiornamento() comando utilizzato per aggiornare i documenti di una collezione. I parametri di base nel comando sono una condizione per la quale un documento deve essere aggiornato e la modifica che deve essere eseguita. Un utente può aggiungere criteri alla dichiarazione di aggiornamento per aggiornare solo i documenti selezionati. L'esempio seguente mostra come viene eseguito l'aggiornamento di un singolo valore in un documento:
- Inserisci updateOne comando.
- Scegliere la condizione da utilizzare per decidere quale documento aggiornare. Ad esempio, aggiorneremo un documento con l'autore e l'articolo.
- Utilizza il set comando per modificare il Nome campo, scegli quale nome campo vuoi modificare, quindi inserisci il nuovo valore come mostrato di seguito:
db.fossdb.updateOne(
{ item: "article" },
{
$set: { "foss": "fosslinux", author: "Abraham" },
$currentDate: { lastModified: true }
}
)
Uscita:
Nota: assicurarsi di selezionare il database corretto utilizzando il comando "usa". Ad esempio, sto usando "fossdb"; pertanto, per scegliere il database corretto, eseguirò il comando seguente:
use fossdb
Uscita:
L'output mostrerà che un record corrisponde alla condizione e quindi il valore del campo pertinente nel documento viene modificato.
Per aggiornare i documenti in blocco contemporaneamente in MongoDB, un utente dovrà utilizzare un'opzione multipla poiché, per impostazione predefinita, viene modificato solo un documento alla volta. Il codice seguente mostra come un utente può aggiornare più documenti contemporaneamente:
- Troveremo prima il documento che ha l'autore come "Abraham" e cambieremo il nome dell'autore da "Abraham" a "Masai". Rilasceremo quindi updateMany comando.
- Quindi scegli la condizione per decidere quale documento deve essere modificato. Come accennato in precedenza, utilizzeremo il documento con il nome "Autore".
- Scegli i nomi dei campi che desideri aggiornare, quindi inserisci i nuovi valori di conseguenza.
db.fossdb.updateMany(
{ "articles": { $lt: 50 } },
{
$set: { "foss": "fosslinux", authors: "Masai" },
$currentDate: { lastModified: true }
}
)
Uscita:
Dopo aver eseguito correttamente questo comando, l'output mostra che un record corrispondeva alla condizione e, pertanto, il campo pertinente è stato modificato.
Perché gli utenti dovrebbero optare per MongoDB
Di seguito sono riportati i motivi per cui gli utenti dovrebbero iniziare a utilizzare MongoDB:
Orientato ai documenti
Poiché questo database è un database di tipo NoSQL, i dati vengono archiviati nei documenti invece di avere dati in un formato di tipo relazionale. Ciò rende questo database molto flessibile e adattabile a situazioni e requisiti del mondo reale.
Query ad hoc
La ricerca per campo, le query e le ricerche di espressioni regolari sono supportate in MongoDB; quindi è possibile eseguire query per riportare campi specifici all'interno dei documenti.
Indicizzazione
Gli indici in MongoDB vengono creati per migliorare le prestazioni delle ricerche all'interno del database.
Bilanciamento del carico
MongoDB utilizza lo sharding per scalare orizzontalmente suddividendo i dati tra più istanze MongoDB.
Replica
Questo database fornisce un'elevata disponibilità con i set di repliche. Ogni set di repliche è costituito da due o più istanze MongoDB. Un membro del set di repliche può agire in qualsiasi momento nel ruolo di replica primaria o secondaria. La replica primaria è il server centrale che interagisce con il client ed esegue tutte le operazioni di lettura/scrittura. Al contrario, la replica secondaria conserva una copia della replica primaria utilizzando i dati di replica incorporati.
Modellazione dei dati in MongoDB
Dalla discussione precedente, i dati in Mongo DB hanno uno schema flessibile. Le raccolte di MongoDB non impongono la struttura del documento, a differenza dei database SQL, in cui un utente deve dichiarare lo schema di una tabella prima di inserire i dati. Questo tipo di flessibilità è ciò che rende MongoDB così potente.
Quando si modellano i dati in MongoDB, gli utenti dovrebbero tenere a mente quanto segue:
- Modelli di recupero dei dati – in caso di utilizzo intenso delle query, gli utenti dovrebbero considerare l'utilizzo di indici nei propri modelli di dati per migliorare l'efficienza delle query.
- Necessità dell'applicazione – un utente dovrebbe esaminare le esigenze aziendali dell'applicazione e vedere quali dati e tipo di dati sono necessari per l'applicazione.
- Il database viene modificato frequentemente? – gli utenti dovranno riconsiderare l'uso degli indici o incorporare lo sharding, se necessario, nella progettazione della modellazione dei dati per migliorare l'efficienza dell'ambiente MongoDB complessivo.
Conclusione
Questo articolo ha fornito una breve analisi di MongoDB, un database virale oggi sul mercato. Inoltre, ha spiegato come aggiornare i documenti esistenti in MongoDB. Ci auguriamo che questo articolo ti aiuti a capire meglio MongoDB. In caso di problemi, contattaci attraverso la sezione commenti e ti risponderemo.