I recently decided to commit to learning MongoDB. I’ve noticed comparisons between SQL and NoSQL databases online, and although one is not necessarily better than the other as both serve different purposes, I decided that it would be beneficial to me as a full stack developer to know both as it is part of the MEAN stack. So last week I signed up for MongoDB’s MongoDB Basics course. It is a 3-week course that teaches you how to use Compass (the MongoDB GUI), the document model and schema design, the MongoDB query language and how to use Atlas (their hosted database as a service).
My ultimate goal is to become a MongoDB Certified Developer Associate. This post is my public commitiment to my timeline below and to acheiving my goal!
The course consists of three chapters with a new chapter released each week. Each chapter consists of on demand videos, quizzes to test your knowledge and labs where you access several databases with pre-populated datasets.
The quizzes are not graded, however, the labs and homework are; along with the final exam. Labs and homework are due each week at a certain time. After completing the course with a passing grade, you’ll receive a course completing confirmation.
I’ve been in the course for a week and I’m really enjoying it so far. I like the format of the course and the concept of storing records as documents within individual collections in a database. Also, the JSON-like format of the documents is nice!
I’ve completed the first week assignments and I’m looking forward to starting on Chapter 2 where I’ll learn about the MongoDB query language and MongoDB Atlas.
My ultimate goal is to become a MongoDB Certified Developer Associate. My specific plan is:
- Pass the MongoDB Basics exam (April 24 - May 15)
- Pass the MongoDB for Node.js Developers exam (May 29 - July 17)
- Pass the MongoDB Certified Developer Associate Exam (July 17 - July 24)
This is my public commitment to sticking to my timeline and achieving my goal!
So that’s why I want to learn MongoDB (and my plan to do so), but what is MongoDB exactly?
What is MongoDB
MongoDB is an open-source document database and is the leading NoSQL database program. MongoDB helps to speed up application development by removing some of the challenges that can slow down the pace. It helps to speed up development, deploy applications easier and scale them quickly.
Modern applications generate and store a lot of data. Instead of relying on a single server, MongoDB scales by adding more servers and allows developers to add more capacity when needed.
MongoDB is flexible in that it stores data in JSON-like documents with dynamic schemas. With this structure, database fields can vary between documents and overall structure can be changed as needed. That type of flexibility is important for modern agile development and continuous deployment of critical applications. In a development sprint, it is important to iterate quickly and possibly update the data structure; all while avoiding downtime as much as possible. With a relational database, schemas are required to be defined before adding data. Meaning if new data points are required to be stored, additional columns would have to be added to the database and the entire database would have to be migrated to the new schema. That type of rigidness is not conducive to agile development and may lead to downtime if the database is large. With a NoSQL database like MongoDB, application changes can be made in real-time because data can be inserted into the database without a predefined schema.
MongoDB is a distributed database and supports auto-sharding and horizontal scalability, allowing users to leverage cloud computing and storage by spreading data across multiple servers.
So that’s MongoDB in a nutshell and why I want to learn it. I plan to add more posts as I learn more about it and progress through the courses on my way to becoming a MongoDB Certified Developer Associate!