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.
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 impostare l'autenticazione in Mongodb
- Come eseguire Mongodb con Docker e Docker-Compose
- Come installare Mongodb 5 in Rocky Linux/Centos 8
- Come installare Mongodb 5 in Opensuse Leap 15.3
Prerequisiti
Per seguire, assicurati di avere quanto segue:
- Un server Fedora 34/35 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 test
- Disinstalla MongoDB Community Edition
1. Garantire che il server sia aggiornato
Prima di procedere, assicuriamoci che i nostri repository e pacchetti di servizio siano nelle ultime versioni aggiornando utilizzando questo comando:
sudo dnf -y update
2. Installazione di Mongodb
MongoDB non è disponibile nei repository Fedora 34/35 predefiniti. Per questa installazione, scaricheremo il .rpm
file direttamente dal repository MongoDB. I download sono organizzati in base alla versione di Red Hat/CentOS (ad es. 8
), quindi la versione di MongoDB (ad es. 5.0
), quindi architettura (ad es. x86_64
).
Scarichiamo il server MongoDB usando questo comando:
curl -LO https://repo.mongodb.org/yum/redhat/8Server/mongodb-org/5.0/x86_64/RPMS/mongodb-org-server-5.0.3-1.el8.x86_64.rpm
Quindi installa con dnf:
sudo dnf install -y ./mongodb-org-server-5.0.3-1.el8.x86_64.rpm
Installiamo anche la shell MongoDB e installiamo usando questi comandi:
curl -LO https://repo.mongodb.org/yum/redhat/8Server/mongodb-org/5.0/x86_64/RPMS/mongodb-org-shell-5.0.3-1.el8.x86_64.rpm
Quindi installa:
sudo dnf install -y ./mongodb-org-shell-5.0.3-1.el8.x86_64.rpm
Infine scarichiamo e installiamo Mongosh.
curl -LO https://repo.mongodb.org/yum/redhat/8Server/mongodb-org/5.0/x86_64/RPMS/mongodb-mongosh-1.1.1.el8.x86_64.rpm
Quindi installa
sudo dnf install -y ./mongodb-mongosh-1.1.1.el8.x86_64.rpm
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.1l FIPS 24 Aug 2021",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "rhel80",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
Possiamo anche controllare la versione del Mongosh:
$ mongosh -version
1.1.1
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 Wed 2021-11-03 14:31:03 UTC; 21min ago
Docs: https://docs.mongodb.org/manual
Main PID: 74348 (mongod)
Memory: 61.5M
CPU: 4.278s
CGroup: /system.slice/mongod.service
└─74348 /usr/bin/mongod -f /etc/mongod.conf
Nov 03 14:31:02 new-cloud systemd[1]: Starting MongoDB Database Server...
Nov 03 14:31:02 new-cloud mongod[74346]: about to fork child process, waiting until server is ready for connections.
Nov 03 14:31:02 new-cloud mongod[74348]: forked process: 74348
Nov 03 14:31:03 new-cloud mongod[74346]: child process started successfully, parent exiting
Nov 03 14:31:03 new-cloud 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("3c093393-8154-44d4-97b5-7b02ddebd7bd") }
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-03T14:31:02.695+00:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
2021-11-03T14:31:03.626+00:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---
---
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("6182a27289aefc6a3f30d05a"), "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 Fedora 34/35.