Accedi
Accedi

Come usare MongoDB Shell

Come usare MongoDB Shell
Minhal Abbas
Redattore tecnico
Database MongoDB
23.10.2025
Reading time: 9 min

MongoDB Shell è un ambiente REPL (Read-Eval-Print Loop) adattivo basato su JavaScript e Node.js per lavorare con le implementazioni MongoDB. È uno strumento fondamentale per interrogare i dati, amministrare i database ed eseguire diverse operazioni. Offre un’interfaccia intuitiva per gestire i database, sia in remoto che in locale.

Questo articolo illustra passo dopo passo come utilizzare la MongoDB Shell.

Passaggio 1: Installazione della MongoDB Shell

Prima di iniziare, assicurati che la Shell sia installata sul sistema. In caso contrario, scarica la versione appropriata dal sito ufficiale e segui le istruzioni di installazione per il tuo sistema operativo.

Windows

Visita la pagina ufficiale, seleziona la versione Windows e avvia il download.

macOS

Nella pagina ufficiale, scegli la versione per macOS e avvia il download. In alternativa, puoi usare Homebrew eseguendo i seguenti comandi:

brew tap mongodb/brew
brew install mongosh

Linux

Consulta le istruzioni fornite sul sito per il sistema operativo Linux. Ad esempio, su un sistema basato su Debian, segui questi passaggi:

Aggiungi la chiave GPG per il repository MongoDB:

curl -fsSL https://pgp.mongodb.com/server-7.0.asc |  sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

Aggiungi il repository MongoDB al tuo sistema:

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

Aggiorna l’elenco dei pacchetti:

sudo apt update

Installa MongoDB:

sudo apt install mongodb-org -y

Image4

Dopo l’installazione, verifica la versione installata:

mongod --version

Image6

Una volta completata l’installazione, abilita, avvia e controlla il servizio:

sudo systemctl enable mongod
sudo systemctl start mongod
sudo systemctl status mongod

Image5

Se cerchi una soluzione affidabile, ad alte prestazioni e conveniente per i tuoi flussi di lavoro, Hostman offre opzioni di hosting VPS Linux, tra cui Debian VPS, Ubuntu VPS e VPS CentOS.

Passaggio 2: Connessione a un’istanza

Dopo l’installazione, puoi stabilire una connessione a un’istanza. Se è locale, digita mongosh. Per impostazione predefinita, si connette all’istanza in esecuzione sulla porta 27017 su localhost:

Once the installation is done, you can establish connections to its instance. If it is local, enter mongosh. It establishes the connection to the instance by default. It is running at port 27017 on localhost:

mongosh

Image7

La seguente sintassi viene utilizzata per connettersi a un server remoto:

mongodb+srv://<nome_utente>:<password>@<indirizzo_cluster>/<database>?retryWrites=true&w=majority

Sostituisci <nome_utente>, <password>, <indirizzo_cluster> e <database> con le credenziali e i dettagli di connessione reali.

Passaggio 3: Navigazione nel terminale

Una volta connesso, puoi lavorare con i database. Prima di procedere, l’interfaccia mostra un messaggio di benvenuto:

Image7

Il database assegnato a una nuova istanza Shell si chiama test. Può essere usato in sicurezza per esperimenti.

Operazioni utili sono elencate di seguito:

Visualizzare tutti i database

Esegui show dbs per ottenere un elenco di tutti i database disponibili:

show dbs

Image10

Visualizzare il database corrente

La maggior parte dei comandi opera su un database o una raccolta contenuta al suo interno. L’oggetto db rappresenta il database attualmente selezionato:

db

Image9

Cambiare database

Digita il comando use seguito dal nome del database, ad esempio new_db, per crearlo o passare a esso:

use new_db

Image11

Sostituisci new_db con il nome reale del database.

Inserire un oggetto

Per prima cosa, inserisci un oggetto con un nome in student_data all’interno del database new_db esistente:

db.student_data.insertOne({name: 'School has 500 students'})

Image1

Puoi anche inserire più documenti in student_data, ciascuno con un campo name contenente valori specifici. Questo consente l’inserimento in batch dei dati nella raccolta:

db.student_data.insertMany([
{name: 'School has 500 students'},
{name: 'School has 600 students'}
])

Image8

Visualizzare le collezioni

Dopo l’inserimento, visualizza le collezioni esistenti:

show collections

Image14

Se non desideri eseguire altre operazioni, esci dall’interfaccia digitando:

exit

Image12

Hai ora compreso le operazioni di base della Shell.

Passaggio 4: Operazioni CRUD

Quando si lavora con la Shell, le operazioni CRUD (Create, Read, Update, Delete) sono fondamentali. Eseguiamo alcune operazioni di base:

Creare/Inserire dati

Quando inserisci nuove informazioni in una raccolta, utilizza la funzione insertOne. Creiamo una nuova raccolta e la popoliamo con le informazioni necessarie, inclusi name (nome), age (età) e city (città):

db.collection.insertOne({ name: "Harry", age: 45, city: "Sydney" })

Image13

Trovare/Leggere dati

Puoi interrogare i documenti associati alla raccolta usando la funzione find. Ad esempio, vengono recuperate tutte le voci con un’età superiore a 25:

db.collection.find({ age: { $gt: 25 } }) //  Condizione in cui l’età è maggiore di 25

Image15

Modificare dati

Usa le funzioni updateOne o updateMany per modificare i documenti esistenti. Ad esempio, l’età di Harry viene aggiornata a 50:

db.collection.updateOne({ name: "Harry" }, { $set: { age: 50 } })

Image16

Eliminare dati

Usa i metodi deleteOne o deleteMany per rimuovere voci dalla raccolta. Questo comando elimina un documento con il valore John nel campo name:

db.collection.deleteOne({ name: "John" })

Image17

Passaggio 5: Utilizzo avanzato

In questo passaggio, esegui operazioni complesse tramite funzionalità avanzate. Grazie agli strumenti di debug, profilazione e ottimizzazione delle prestazioni, la Shell aiuta a identificare i colli di bottiglia e migliorare la configurazione.

Pipeline di aggregazione

Con le pipeline è possibile elaborare record e ottenere risultati aggregati. Le pipeline consentono di creare analisi e trasformazioni complesse per estrarre informazioni preziose dai dati grezzi. Per eseguire una pipeline di fasi, utilizza la funzione aggregate. Ecco un esempio:

db.collection.aggregate([
    { $match: { status: "A" } },
    { $group: { _id: "$city", total: { $sum: "$amount" } } },
    { $sort: { total: -1 } }
])

Image18

In questo script, la pipeline filtra i documenti con stato A, li raggruppa per city, somma gli importi e ordina i risultati in ordine decrescente.

La pipeline di aggregazione è uno strumento potente per l’analisi e la trasformazione dei dati. È composta da più fasi, ognuna delle quali modifica il flusso di documenti. Queste fasi includono:

$project: seleziona o esclude campi specifici.

$match: applica una condizione di query per filtrare i documenti.

$group: raggruppa i dati per un campo e calcola aggregazioni.

$sort: ordina i risultati in base a un campo specifico.

$limit: limita il numero di record.

$skip: salta un numero definito di record.

MapReduce

Un paradigma efficace per elaborare grandi set di dati. Per eseguire attività MapReduce, utilizza il comando mapReduce:

// Dati di esempio
db.collection.insertMany([
    { name: "Harry", age: 25, salary: 5000 },
    { name: "Buttler", age: 30, salary: 6000 },
    { name: "Morgan", age: 35, salary: 7000 }
]);

// Funzione Map
var mapFunction = function() {
    emit(this.age, this.salary);
};

// Funzione Reduce
var reduceFunction = function(keyAge, valuesSalaries) {
    return Array.sum(valuesSalaries);
};

// Esegui MapReduce
db.runCommand({
    mapreduce: "collection",
    map: mapFunction,
    reduce: reduceFunction,
    out: "results"
});

db.results.find().forEach(printjson); // Mostra i risultati

Image3

  • In questo esempio, la funzione mapFunction emette l’età come chiave e lo stipendio come valore.

  • La funzione reduceFunction somma gli stipendi per ogni gruppo di età.

  • I risultati vengono salvati in una nuova raccolta chiamata results, e l’output finale viene mostrato con db.results.find().forEach(printjson).

Il risultato è mostrato di seguito:

Image22

Proiezione

Utilizza l’operatore di proiezione per specificare quali campi includere o escludere nei risultati. Recupera tutte le informazioni associate a una query, ad esempio mostrando solo i campi name e age. Questo ti consente di visualizzare risultati specifici ed escluderne altri. Proiettiamo solo i campi name e age:

db.collection.find({}, { name: 1, age: 1 }) 

Image19

Ordinamento

Ordina i risultati utilizzando la funzione sort. Recupera tutti i documenti del set e li ordina in ordine decrescente in base all’età, mostrando per primi i valori più alti. Ordiniamo per età in ordine decrescente:

db.collection.find().sort({ age: -1 }) 

Image20

Limitare

Gli utenti possono limitare il numero di risultati con la funzione limit. Ad esempio, ottieni i primi tre documenti della raccolta. È utile per visualizzare un piccolo sottoinsieme di dati senza recuperare l’intero elenco. Limitiamo i risultati a 3:

db.collection.find().limit(3) 

Image21

Saltare

Puoi saltare delle voci utilizzando la funzione skip. Ad esempio, saltare i primi due documenti della raccolta. È utile per la paginazione o per ignorare i primi record. Saltiamo i primi 2 risultati:

db.collection.find().skip(2) 

Image23

Passaggio 6: Creazione di script con Shell

Gli utenti possono scrivere script per automatizzare le attività all’interno della Shell. Per farlo, salva lo script in un file .js ed eseguilo con mongosh. È utile per eseguire attività ripetitive in modo efficiente, come il popolamento dei dati o gli aggiornamenti batch:

mongosh script.js

Image2

Padroneggiando i comandi di MongoDB, puoi ottenere preziose informazioni dai tuoi dati.

Conclusione

Con l’interfaccia interattiva di MongoDB Shell puoi eseguire attività amministrative ricorrenti come scrittura, lettura e modifica. Inoltre, puoi interrogare raccolte esistenti, aggiungere nuovi oggetti al database ed eseguire attività di gestione. Dalle semplici operazioni CRUD alle aggregazioni e agli script complessi, gli utenti possono utilizzare l’interfaccia per eseguire una vasta gamma di operazioni.

Eseguendo script, gli utenti possono automatizzare in modo efficiente attività ripetitive. Questo tutorial ha trattato l’installazione, la configurazione e la gestione di database, raccolte e utenti.

Database MongoDB
23.10.2025
Reading time: 9 min

Simili

Hai domande,
commenti o dubbi?

I nostri professionisti sono disponibili per assisterti in ogni momento,
che tu abbia bisogno di aiuto o non sappia da dove iniziare.
Inviaci un'email
Hostman's Support