MongoDB è un programma di database NoSQL orientato ai documenti multipiattaforma che utilizza documenti simili a JSON con schemi opzionali. MongoDB è sviluppato da MongoDB Inc. e concesso in licenza con la Server Side Public License.
MongoDB è stato creato per le persone che creano applicazioni Internet e aziendali che hanno bisogno di evolversi rapidamente e scalare con eleganza. Le aziende e i team di sviluppo di tutte le dimensioni utilizzano MongoDB per un'ampia varietà di motivi.
Invece di archiviare i dati in tabelle di righe o colonne come i database SQL, ogni record in un database MongoDB è un documento descritto in BSON, una rappresentazione binaria dei dati. Le applicazioni possono quindi recuperare queste informazioni in un formato JSON.
Ecco un semplice documento JSON che descrive un personaggio storico.
{
"_id": 1,
"name": {
"first": "Ada",
"last": "Lovelace"
},
"title": "The First Programmer",
"interests": ["mathematics", "programming"]
}
Contenuti correlati
- Come eseguire Mongodb con Docker e Docker-Compose
- Come impostare l'autenticazione in Mongodb
- Come installare Mongodb 5 in Rocky Linux/Centos 8
- Come installare Mongodb 5 su Fedora 34/35
Prerequisiti
Per seguire, assicurati di avere quanto segue:
- Un server OpenSUSE Leap aggiornato
- Conoscenza del terminale Linux
- Accesso a Internet
- Accesso root al server o Utente con accesso Sudo
Indice dei contenuti
- Assicurarsi che il server sia aggiornato
- Installazione di MongoDB
- Consentire la porta MongoDB sul firewall
- Avvio e abilitazione del servizio MongoDB
- Connessione a Mongodb ed esecuzione di alcuni comandi di prova
- Disinstalla MongoDB Community Edition
1. Garantire che il server sia aggiornato
Prima di procedere, assicuriamoci che i nostri repository e pacchetti del server siano nelle ultime versioni aggiornando utilizzando questo comando:
sudo zypper ref
sudo zypper up -y
2. Installazione di MongoDB Community Edition
I repository Mongodb non sono disponibili nei repository OpenSUSE Leap per impostazione predefinita. Per aggiungere il repository, procedi come segue:
Importa la chiave pubblica MongoDB.
sudo rpm --import https://www.mongodb.org/static/pgp/server-5.0.asc
Aggiungi il repository in modo da poter installare MongoDB.
sudo zypper addrepo --gpgcheck "https://repo.mongodb.org/zypper/suse/15/mongodb-org/5.0/x86_64/" mongodb
Per installare l'ultima versione di MongoDB, immetti il seguente comando:
sudo zypper -n install mongodb-org
Per installare una versione specifica di MongoDB, specifica ogni pacchetto di componenti individualmente e aggiungi il numero di versione al nome del pacchetto, come nell'esempio seguente:
sudo zypper install mongodb-org-5.0.2 mongodb-org-database-5.0.2 mongodb-org-server-5.0.2 mongodb-org-shell-5.0.2 mongodb-org-mongos-5.0.2 mongodb-org-tools-5.0.2
Puoi specificare qualsiasi versione disponibile di MongoDB. Tuttavia zypper
aggiorna i pacchetti quando diventa disponibile una versione più recente. Per prevenire aggiornamenti indesiderati, blocca i pacchetti eseguendo il comando seguente:
sudo zypper addlock mongodb-org-5.0.2 mongodb-org-database-5.0.2 mongodb-org-server-5.0.2 mongodb-org-shell-5.0.2 mongodb-org-mongos-5.0.2 mongodb-org-tools-5.0.2
Le versioni precedenti dei pacchetti MongoDB utilizzano una posizione di repository diversa. Fare riferimento alla versione della documentazione appropriata per la propria versione di MongoDB.
Puoi controllare la versione di MongoDB installata usando il seguente comando:
~> mongo -version
MongoDB shell version v5.0.3
Build Info: {
"version": "5.0.3",
"gitVersion": "657fea5a61a74d7a79df7aff8e4bcf0bc742b748",
"openSSLVersion": "OpenSSL 1.1.1d 10 Sep 2019",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "suse15",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
3. Consentire la porta MongoDB sul firewall
Se hai un firewalld
attivo servizio sul tuo server e desideri che il servizio MongoDB sia accessibile sulla rete, consenti la porta 27017/tcp
:
sudo firewall-cmd --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
Puoi anche limitare l'accesso in base all'indirizzo di origine
sudo firewall-cmd --permanent --add-rich-rule "rule family="ipv4" \
source address="10.1.0.0/16" port protocol="tcp" port="27017" accept
4. Avvio e abilitazione del servizio MongoDB
Una volta che il servizio è stato installato, non verrà avviato per impostazione predefinita. Avvia il servizio mongodb usando questo comando:
sudo systemctl start mongod
Conferma che il servizio è attivo e funzionante controllandone lo stato:
~> sudo systemctl status mongod
● mongod.service - MongoDB Database Server
Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2021-11-04 15:19:22 UTC; 6s ago
Docs: https://docs.mongodb.org/manual
Process: 7088 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
Process: 7090 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
Process: 7091 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
Process: 7092 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 7107 (mongod)
CGroup: /system.slice/mongod.service
└─7107 /usr/bin/mongod -f /etc/mongod.conf
Nov 04 15:19:21 ip-10-2-40-60 systemd[1]: Starting MongoDB Database Server...
Nov 04 15:19:21 ip-10-2-40-60 mongod[7092]: about to fork child process, waiting until server is ready for connections.
Nov 04 15:19:21 ip-10-2-40-60 mongod[7107]: forked process: 7107
Nov 04 15:19:22 ip-10-2-40-60 mongod[7092]: child process started successfully, parent exiting
Nov 04 15:19:22 ip-10-2-40-60 systemd[1]: Started MongoDB Database Server.
Il nostro servizio mongodb è attivo e funzionante. Consentiamogli di avviarsi all'avvio usando questo comando:
sudo systemctl enable mongod
5. Connessione a Mongodb ed esecuzione di alcuni comandi di prova
Usa il comando mongo per connetterti alla shell mongo.
~> mongo --port 27017
MongoDB shell version v5.0.3
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("5d73c2e5-bedc-4f87-b1e3-6413336f3848") }
MongoDB server version: 5.0.3
================
Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
We recommend you begin using "mongosh".
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
https://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forums
https://community.mongodb.com
---
The server generated these startup warnings when booting:
2021-11-04T15:19:22.512+00:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
2021-11-04T15:19:22.512+00:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
---
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).
The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.
To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
>
> db.version()
5.0.3
>
Eseguiamo alcuni comandi di prova per confermarne il corretto funzionamento:
> use citizix_db;
switched to db citizix_db
> db.users.save({
... name: "etowett",
... location: "Arctic Vault"
... });
WriteResult({ "nInserted" : 1 })
> db.users.find();
{ "_id" : ObjectId("6183fa50c4eb614f02efac0b"), "name" : "etowett", "location" : "Arctic Vault" }
6. Disinstalla MongoDB Community Edition
Per rimuovere completamente MongoDB da un sistema, è necessario rimuovere le applicazioni MongoDB stesse, i file di configurazione e tutte le directory contenenti dati e registri.
Questo processo sarà completamente rimuovi MongoDB, la sua configurazione e tutto banche dati. Questo processo non è reversibile, quindi assicurati di eseguire il backup di tutta la configurazione e dei dati prima di procedere.
La sezione seguente ti guida attraverso i passaggi necessari.
Interrompi MongoDB
Ferma il mongod
processo eseguendo il seguente comando:
sudo service mongod stop
Rimuovi i pacchetti.
Rimuovi tutti i pacchetti MongoDB che avevi precedentemente installato.
sudo zypper remove $(rpm -qa | grep mongodb-org)
Rimuovi le directory dei dati.
Rimuovi i database MongoDB e i file di registro.
sudo rm -r /var/log/mongodbsudo rm -r /var/lib/mongo
Conclusione
In questa guida, siamo riusciti a installare ed eseguire alcune operazioni di base con MongoDB sul nostro server OpenSUSE Leap