MongoDB Overview
- Document DB
- supports ACID
- uses JSON/BSON
- districuted scalability (sharding)
- high availability (replica set)
- free open source Community Edition
- pluggable storage engine support
- queries use MQL (MongoDB Query Language)
- has free text search capabilities
Terminology
Compared with Relational databases, MongoDB has the following terms:
SQL | MongoDB |
---|---|
Database | Database |
Table | Collection |
Row | Document |
Column | Field |
Index | Index |
BSON
BSON stands for “Binary JSON”, it’s binary-encoded. It sacrifies human-readability for performance. BSON supports more data types than traditional JSON (different numeric types, raw binary, dates, ObjectId, etc.).
Example:
On the “frontend”, we talk with MongoDB in JSON. In the backend, MongoDB stores the documents as BSONs.
All the BSON types can be found in the MongoDB Docs.
Dates
A date can be represented in MongoDB with ISODate
.
We can use filtering based on date, including comparison operators such as
$gt
and $lt
.
Index
To create an index:
The index will be created on the name
field in ascending order.
We can get all indexes on a collection with:
Tools
Shell
Mongo Shell (mongosh) is a CLI interface for accessing MongoDB. It uses JS-like syntax.
Commands
GUI
MongoDB Compass is the official GUI for exploring MongoDB databases. It’s available for Linux, macOS, Windows.
mongoimport
A tool that is added to MongoDB installations that allows for bulk imports of data.
Testing
MongoDB has MongoDB Atlas offering, which is a cloud deploymen of MongoDB. There’s a free tier that is shared, but great for testing. It can be deployed to Azure/GCP/AWS. For testing, we can also load a Sample Dataset.