MongoDB je multiplatformní dokumentově orientovaný databázový program NoSQL, který používá dokumenty podobné JSON s volitelnými schématy. MongoDB je vyvinut společností MongoDB Inc. a je licencován v rámci Server Side Public License.
Namísto ukládání dat do tabulek řádků nebo sloupců, jako jsou databáze SQL, je každý záznam v databázi MongoDB dokumentem popsaným v BSON, což je binární reprezentace dat. Aplikace pak mohou načíst tyto informace ve formátu JSON.
Zde je jednoduchý dokument JSON popisující historickou postavu.
{
"_id": 1,
"name": {
"first": "Ada",
"last": "Lovelace"
},
"title": "The First Programmer",
"interests": ["mathematics", "programming"]
}
Související obsah
- Jak nastavit ověřování v Mongodb
- Jak spustit Mongodb pomocí Docker a Docker-Compose
- Jak nainstalovat Mongodb 5 v Rocky Linux/Centos 8
- Jak nainstalovat Mongodb 5 v Opensuse Leap 15.3
Předpoklady
Chcete-li pokračovat, ujistěte se, že máte následující:
- Aktuální server Fedory 34/35
- Znalost terminálu Linux
- Přístup k internetu
- Kořenový přístup k serveru nebo uživateli s přístupem Sudo
Obsah
- Zajištění aktuálnosti serveru
- Instalace MongoDB
- Povolení portu MongoDB na bráně Firewall
- Spuštění a povolení služby MongoDB
- Připojování k MongoDB a provádění některých testovacích příkazů
- Odinstalujte MongoDB Community Edition
1. Zajištění aktuálnosti serveru
Než budete pokračovat, ujistěte se, že naše repozitáře a balíčky jsou v nejnovějších verzích aktualizací pomocí tohoto příkazu:
sudo dnf -y update
2. Instalace Mongodb
MongoDB není k dispozici ve výchozím repozitáři Fedory 34/35. Pro tuto instalaci stáhneme .rpm
soubory přímo z úložiště MongoDB. Stahování je organizováno podle verze Red Hat / CentOS (např. 8
), poté MongoDB verze vydání (např. 5.0
), pak architektura (např. x86_64
).
Stáhneme si server MongoDB pomocí tohoto příkazu:
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
Poté nainstalujte pomocí dnf:
sudo dnf install -y ./mongodb-org-server-5.0.3-1.el8.x86_64.rpm
Pojďme také nainstalovat prostředí MongoDB a nainstalovat pomocí těchto příkazů:
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
Poté nainstalujte:
sudo dnf install -y ./mongodb-org-shell-5.0.3-1.el8.x86_64.rpm
Nakonec nám stáhněte a nainstalujte 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
Poté nainstalujte
sudo dnf install -y ./mongodb-mongosh-1.1.1.el8.x86_64.rpm
Verzi nainstalované MongoDB můžete zkontrolovat pomocí následujícího příkazu:
$ 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"
}
}
Můžeme také zkontrolovat verzi Mongoshe:
$ mongosh -version
1.1.1
3. Povolení portu MongoDB na bráně firewall
Pokud máte aktivní firewalld
službu na vašem serveru a chcete, aby byla služba MongoDB dostupná přes síť, povolte port 27017/tcp
:
sudo firewall-cmd --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
Můžete také omezit přístup na základě zdrojové adresy
sudo firewall-cmd --permanent --add-rich-rule "rule family="ipv4" \
source address="10.1.0.0/16" port protocol="tcp" port="27017" accept
4. Spuštění a povolení služby MongoDB
Jakmile je služba nainstalována, nebude ve výchozím nastavení spuštěna. Spusťte službu mongodb pomocí tohoto příkazu:
sudo systemctl start mongod
Zkontrolujte, zda je služba spuštěna a běží, a zkontrolujte její stav:
$ 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.
Naše služba mongodb je v provozu. Umožníme spuštění při bootování pomocí tohoto příkazu:
sudo systemctl enable mongod
5. Připojování k Mongodb a provádění některých testovacích příkazů
Pomocí příkazu mongo se připojte k shellu 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
Proveďme několik testovacích příkazů, abychom potvrdili jeho správné fungování:
> 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. Odinstalujte MongoDB Community Edition
Chcete-li úplně odstranit MongoDB ze systému, musíte odstranit samotné aplikace MongoDB, konfigurační soubory a všechny adresáře obsahující data a protokoly.
Tento proces bude úplně odstranit MongoDB, jeho konfiguraci a vše databází. Tento proces nelze vrátit zpět, proto se před pokračováním ujistěte, že veškerá vaše konfigurace a data jsou zálohována.
Následující část vás provede nezbytnými kroky.
Zastavit MongoDB
Zastavte mongod
zpracovat zadáním následujícího příkazu:
sudo service mongod stop
Odstranit balíčky.
Odeberte všechny balíčky MongoDB, které jste dříve nainstalovali.
sudo zypper remove $(rpm -qa | grep mongodb-org)
Odstraňte datové adresáře.
Odeberte databáze MongoDB a soubory protokolu.
sudo rm -r /var/log/mongodbsudo rm -r /var/lib/mongo
Závěr
V této příručce se nám podařilo nainstalovat a provést některé základní operace s MongoDB na našem serveru Fedora 34/35.