MongoDB, a leading open-source document-oriented database management system, is a powerful βNoSQLβ database that empowers businesses to effortlessly store and manage massive amounts of data.
Data is stored as BSON (Binary JSON) documents, which are similar to JSON documents but encoded in a binary format for optimal efficiency and compactness.
MongoDB stands as the favored DBMS among industry giants such as eBay, Adobe, CERN, Shutterstock, and numerous others, prominently integrating MongoDB into their cutting-edge tech stacks.
In this article, you will learn its features and how to install and use MongoDB on your preferred Linux system.
Tutorial Details
Description | MongoDB |
Difficulty Level | High |
Root or Sudo Privileges | Yes |
OS Compatibility | Ubuntu, Manjaro, Fedora, etc. |
Prerequisites | β |
Internet Required | Yes |
Key Features
MongoDB is well-known for its capability to effortlessly store and manage massive amounts of data. However, the following list might give you more insight into it:
- Open-Source
- JSON-Like Queries
- Document-Oriented (allows to store different types of data in the same collection)
- Scalability (capable of scaling horizontally across multiple servers through sharding)
- High Performance (fast read-write operations, handling high-throughput workloads for real-time applications)
- Indexes (create indexes on fields within documents to improve query performance on frequently accessed data)
- Community and Enterprise Editions (the community edition comes with basic features enough for small scale businesses, and the enterprise edition has some additional features, support, and security options for large scale businesses)
The aforementioned features are well known in MongoDB. Now, letβs check out how to install it on your preferred Linux system.
How to Install MongoDB on Linux
The installation steps for MongoDB can vary slightly depending on the Linux distribution youβre using. Rest assured, Iβll guide you through installing MongoDB on the most popular Linux distributions. Letβs begin with:
Installing MongoDB on a Debian and Ubuntu System
On βDebian 11β and βUbuntu 22.04β, weβll efficiently install MongoDB using its dedicated repository. Keep in mind that the instructions for each system have slight differences, but fear not, as Iβll provide a clear and concise guide for both.
1. Open your terminal and install the following required packages (Debian/Ubuntu):
$ sudo apt install gnupg curl -y
2. Import the MongoDB public GPG key depending on your Linux distribution:
#Debian 11
$ curl -fsSL https://pgp.mongodb.com/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor
#Ubuntu 22.04
$ curl -fsSL https://pgp.mongodb.com/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor
3. Add the MongoDB repository using the following command appropriate to your Linux distribution:
#Debian 11
$ echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg] http://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
#Ubuntu 22.04
$ echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
4. Update the local package database:
$ sudo apt update
5. Install the latest version of MongoDB.
$ sudo apt install mongodb-org -y
Installing MongoDB on a Red Hat and Fedora System
MongoDB is not available in this systemβs default repositories, but you can use the official MongoDB repository provided for this system.
1. Create the βmongodb-org-6.0.repo
β file at the β/etc/yum.repos.d/
β path using your choice of text editor or the vim command:
$ sudo vim /etc/yum.repos.d/mongodb-org-6.0.repo
2. Add the following content to it:
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
3. Run the following command to install MongoDB:
$ sudo dnf install mongodb-org -y
Installing MongoDB on an Arch and Manjaro System
MongoDB is available in the Arch User Repository (AUR). You can use AUR helpers like Yay to easily install MongoDB on these systems.
$ yay -S mongodb-bin
Installing MongoDB on an OpenSUSE-Based System
Follow the below steps to install MongoDB community edition on your βSUSE 15β system using the Zypper package manager:
1. Import the MongoDB public key:
$ sudo rpm --import https://www.mongodb.org/static/pgp/server-6.0.asc
2. Add the MongoDB repository using the following command:
$ sudo zypper addrepo --gpgcheck "https://repo.mongodb.org/zypper/suse/15/mongodb-org/6.0/x86_64/" mongodb
3. Install the latest version of MongoDB:
$ sudo zypper install mongodb-org -y
Starting the MongoDB Service
Once the installation is successfully completed, you have to ensure that the MongoDB service is up and running by issuing the following command:
mongod
β for most systems. However, on certain systems, like Arch-based Linux, the service name will be βmongodb
β, instead.$ sudo systemctl status mongod
Output:
As you can see from the above picture, the service is not running. So, issue the following command to start and enable the MongoDB service:
$ sudo systemctl start mongod
$ sudo systemctl enable mongod
Output:
Finally, re-check again to ensure the service is up and running.
$ sudo systemctl status mongod
Output:
How to Use MongoDB in Linux
If you only use MySQL or any other RDBMS and are unfamiliar with JSON, MongoDB might initially pose a challenge. However, the following examples can significantly alleviate any difficulties and ease your pain.
Connecting and Disconnecting from MongoDB
Connect to MongoDB installed on the same host system without specifying any flags by executing the following command:
$ mongosh
Output:
If MongoDB is installed on a different system, then you can specify the username and password along with the hostname, as shown:
#Connecting to MongoDB on a different system without authentication
$ mongosh "mongodb://hostname:27017"
#Connecting to MongoDB on a different system with authentication
$ mongosh "mongodb://username:password@hostname:27017"
To disconnect from a connected MongoDB instance, either issue the βCtrl+Cβ shortcut twice or βCtrl+Dβ once, or you can use the βexit
β command, as shown.
test> exit
Output:
List All the Existing Databases
Once connected, you can use the following command to list all the existing databases:
test> show dbs
Output:
Switch to a Specific Database
To switch to a specific database and start working with it, use the following command.
db
β command to find out your current working database.test> use admin
Output:
List the Content of a Specific Database
Once you switch to your preferred database, use the following command to list its content (collections):
admin> show collections
Output:
Create a New Database
To create a new database, specify the desired unused database name when using the βuse
β command.
admin> use mydb
Create Collections
Letβs create a collection called βmycollection
β in the βmydb
β database.
mydb> db.createCollection("mycollection")
Output:
Insert Data
Lastly, insert a document into the βmycollection
β collection.
mydb> db.mycollection.insert({ name: "LinuxTLDR", ranking: "1", domain: "linuxtldr.com" })
Output:
Note that whenever you insert a new document in the collection, MongoDB will dynamically attach uniquely generated indexes (or IDs) to the inserted document. This index allows MongoDB to perform fast indexing, document identification, sharding, and sorting.
Query Data
You can list (or query) the data in the βmycollection
β collection using the following commandβ
mydb> db.mycollection.find()
Output:
Drop Database
Before dropping the database, switch to the database that you want to delete, and then use the following command to delete it:
mydb> show databases
mydb> db.dropDatabase()
mydb> use mydb
mydb> show databases
Output:
Letβs finish it here.
Final Word
In terms of installation and usage (if you are unfamiliar with JSON), you might face some difficulty while using MongoDB, but itβs worth the time if your intention is to have a cutting-edge database for your next project.
If you have any questions or queries related to this article, then feel free to tell us in the comment section.
Till then, peace!
Join The Conversation
Users are always welcome to leave comments about the articles, whether they are questions, comments, constructive criticism, old information, or notices of typos. Please keep in mind that all comments are moderated according to our comment policy.