Scopri le query e le operazioni di MongoDB con l'aiuto di questa pratica guida.

MongoDB è uno dei database NoSQL più desiderati e ammirati per lo sviluppo professionale. La sua flessibilità, scalabilità e capacità di gestire grandi volumi di dati lo rendono la scelta migliore per le applicazioni moderne. Se vuoi padroneggiare le query e le operazioni regolari di MongoDB, sei nel posto giusto.

Sia che tu stia cercando di recuperare e manipolare i dati in modo efficiente, implementare solidi modelli di dati o costruire responsive applicazioni, l'acquisizione di una profonda conoscenza delle query e delle operazioni comuni di MongoDB migliorerà senza dubbio il tuo competenze.

1. Crea o cambia database

La creazione di un database in locale tramite MongoDB Shell è semplice, soprattutto se hai configurato un cluster remoto. Puoi creare un nuovo database in MongoDB con il file utilizzo comando:

use db_name

Mentre il comando precedente crea un nuovo database, puoi usarlo per passare a un database esistente senza crearne uno nuovo da zero.

instagram viewer

2. Elimina database

Innanzitutto, passa al database che desideri eliminare utilizzando il file utilizzo comando come fatto in precedenza. Quindi rilasciare il database utilizzando il file dropDatabase() comando:

use db_name
db.dropDatabase()

3. Crea una raccolta

Per creare una raccolta, passa al database di destinazione. Usa il creaCollezione() parola chiave per creare una nuova raccolta MongoDB:

db.createCollection("collection_name")

Sostituire nome_raccolta con il nome della raccolta scelto.

4. Inserisci documento in una raccolta

Durante l'invio di dati a una raccolta, è possibile inserire un singolo documento o una serie di documenti.

Per inserire un singolo documento:

db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})

Puoi anche utilizzare il metodo sopra per inserire un array di documenti con un ID:

db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])

Per inserire più documenti contemporaneamente, ciascuno con ID separati, utilizzare il file inserireMolti parola chiave:

db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])

5. Ottieni tutti i documenti da una raccolta

È possibile interrogare tutti i documenti di una raccolta utilizzando il file Trovare() parola chiave:

db.collection_name.find()

Quanto sopra restituisce tutti i documenti all'interno della raccolta specificata:

È inoltre possibile limitare i dati restituiti a un numero specifico. Ad esempio, puoi utilizzare il seguente comando per ottenere solo i primi due documenti:

db.collection_name.find().limit(2)

6. Filtra i documenti in una raccolta

Esistono molti modi per filtrare i documenti in MongoDB. Consideriamo ad esempio i seguenti dati:

Se stai interrogando solo un campo specifico in un documento, usa il file Trovare metodo:

db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})

Quanto sopra restituisce tutti i documenti in cui il valore di Piace È Wordle. Emette solo i nomi e ignora l'ID del documento.

Puoi anche filtrare una raccolta in base a un fattore numerico. Supponiamo che tu voglia ottenere i nomi di tutti gli utenti di età superiore a 21 anni, usa il file $gt operatore:

db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})

L'output è simile al seguente:

Prova a sostituire Trovare con trova uno per vedere cosa succede. Tuttavia, ci sono molte altre parole chiave di filtraggio:

  • $ lt: Tutti i valori inferiori a quello specificato.
  • $gte: Valori uguali o superiori a quello specificato.
  • $lte: Valori inferiori o uguali a quello definito.
  • $eq: Ottiene tutti i valori uguali a quello specificato.
  • $ne: Tutti i valori diversi da quello specificato.
  • $ dentro: utilizzare questo quando si esegue una query in base a un array. Ottiene tutti i valori corrispondenti a qualsiasi elemento nell'array. IL $nin parola chiave fa il contrario.

7. Ordina query

L'ordinamento aiuta a organizzare la query in un ordine specifico. Puoi ordinare in ordine decrescente o crescente. Tieni presente che l'ordinamento richiede un riferimento numerico.

Ad esempio, per ordinare in ordine crescente:

db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})

Per ordinare la query precedente in ordine decrescente, sostituisci "1" con "-1".

db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})

8. Aggiorna un documento

Gli aggiornamenti di MongoDB richiedono operatori atomici per specificare come si desidera eseguire l'aggiornamento. Di seguito è riportato un elenco di operatori atomici di uso comune che è possibile associare a una query di aggiornamento:

  • $set: aggiunge un nuovo campo o modifica un campo esistente.
  • $spingere: inserisce un nuovo elemento in un array. Abbinalo al $ ciascuno operatore per inserire più elementi contemporaneamente.
  • $tirare: Rimuove un elemento da un array. Usalo con $ dentro per rimuovere più elementi in una volta sola.
  • $non impostato: rimuove un campo da un documento.

Per aggiornare un documento e aggiungere un nuovo campo, ad esempio:

db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})

Quanto sopra aggiorna il documento specificato come mostrato:

La rimozione del campo e-mail è semplice con il file $non impostato operatore:

db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})

Considera i seguenti dati di esempio:

È possibile inserire un elemento nell'esistente elementi campo matrice utilizzando il $spingere operatore:

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})

Ecco l'output:

Usa il $ ciascuno operatore per inserire più elementi contemporaneamente:

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})

Ecco l'output:

Come detto, il $tirare operatore rimuove un elemento da un array:

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})

I dati aggiornati hanno questo aspetto:

Includi il $ dentro parola chiave per rimuovere molti elementi in un array in una volta sola:

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})

9. Elimina un documento o un campo

IL deleteOne O deleteMany la parola chiave cestina un documento da una raccolta. Utilizzo deleteOne per rimuovere un documento basato su un campo specificato:

db.collection_name.deleteOne({"Name":"IDNoble"})

Se vuoi eliminare molti documenti con chiavi in ​​comune, usa deleteMany Invece. La query seguente elimina tutti i documenti contenenti Scacchi come il loro Piace.

db.collection.deleteMany({"Likes":"Chess"})

10. Operazione di indicizzazione

L'indicizzazione migliora le prestazioni delle query semplificando il numero di documenti che MongoDB deve scansionare. Spesso è meglio creare un indice sui campi che si interrogano più frequentemente.

L'indicizzazione di MongoDB è simile a come tu utilizzare gli indici per ottimizzare le query SQL. Ad esempio, per creare un indice ascendente sul file Nome campo:

db.collection.createIndex({"Name":1})

Per elencare i tuoi indici:

db.collection.getIndexes()

Quanto sopra è solo un preambolo. Ci sono molti altri metodi per creazione di un indice in MongoDB.

11. Aggregazione

La pipeline di aggregazione, una versione migliorata di MapReduce, consente di eseguire e archiviare calcoli complessi dall'interno di MongoDB. A differenza di MapReduce, che richiede la scrittura separata della mappa e delle funzioni reduce Funzioni javascript, l'aggregazione è semplice e utilizza solo metodi MongoDB incorporati.

Prendi in considerazione i seguenti dati di vendita, ad esempio:

Utilizzando l'aggregazione di MongoDB, puoi calcolare e archiviare il numero totale di prodotti venduti per ciascuna categoria come segue:

db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])

La query precedente restituisce quanto segue:

Padroneggia le query MongoDB

MongoDB offre molti metodi di query, incluse funzionalità per migliorare le prestazioni delle query. Indipendentemente dal tuo linguaggio di programmazione, le strutture di query di cui sopra sono rudimentali per interagire con un database MongoDB.

Tuttavia, potrebbero esserci alcune discrepanze nelle sintassi di base. Ad esempio, mentre alcuni linguaggi di programmazione come Python riconoscono i casi di serpente, altri, incluso JavaScript, usano il caso di cammello. Assicurati di ricercare ciò che funziona per la tecnologia che hai scelto.