mongoDB, NoSQL You hear a lot these days, but is it still an unfamiliar database? Aren't you using it like a relational database (RDS/SQL)? No matter how good the technology is, if it's not used correctly, it will have the opposite effect. That's why we often see cases of failure in using MongoDB. This lecture will teach you everything from basic concepts to practical know-how so that you can use MongoDB as MongoDB-like as possible.
Backend development that properly utilizes mongoDB
Developing REST API with Node.js and Express
Asynchronous programming
Maximizing Read Performance Using Index and Nesting
ACID Transaction
Deploying Node.js Server on AWS Lightsail
mongoDB Atlas Cloud Managed Service
MongoDB, the most beloved NoSQL-based database! I'll show you how to use MongoDB properly. 😎
Topic Introduction 📝
MongoDB's name comes from the word "humongous," meaning "huge." It's a NoSQL-based database launched in 2009, following the internet boom that ushered in the rise of big data keywords. Databases are a core foundation for service development. Unlike MongoDB, the more familiar relational databases (MySQL, PostgreSQL) are already over 20 years old. It's fascinating that in a programming ecosystem where new programming languages and technologies are constantly emerging, there's such a small field of change. Databases are such an important and conservative technology. Any changes to the database can impact not only the backend but also the frontend built on top of it. Consequently, many questions arise about MongoDB, a somewhat unfamiliar technology, and we often see examples of failed implementations:
Should MongoDB be used depending on the situation?
Isn't e-commerce necessarily RDS?
It's good for quick and simple development in the beginning, but is a relational database better later on?
A database that doesn't even support JOIN?
I believe these issues stem from the fact that it's a relatively new technology and the know-how isn't fully known. MongoDB can be used for general purposes, much like relational databases, and e-commerce development can certainly be done with MongoDB (I'm an experienced user). And when used properly, it's far more efficient than relational databases when dealing with large traffic volumes.
What causes these application failures in the first place? It's a lack of understanding of MongoDB's philosophy. Simply learning how to use it isn't enough. And above all, you shouldn't approach it like a relational database. MongoDB's problem-solving approach is fundamentally different in many ways. If you understand these characteristics and use it in a MongoDB-like manner, MongoDB offers a wealth of advantages.
Why you should learn ✒️
Databases can easily become traffic bottlenecks, but MongoDB can fundamentally solve this scalability problem.
You can truly learn MongoDB while also learning backend development. Backend development and databases are one and the same!
Most data communicated in web development is in JSON format. MongoDB stores data in JSON (BSON). This virtually eliminates the need for backend data conversion or ORM, lowering the barrier to entry.
It's a general-purpose database. Due to the nature of NoSQL databases, ACID transactions are often not supported. MongoDB, however, has supported ACID transactions since version 4.0, while maintaining the horizontal scalability of NoSQL.
We'll cover asynchronous programming early in the course. It's an essential concept for the backend to communicate efficiently with the database.
What you will learn in this course ✏️
MongoDB Basic Usage - CRUD
mongoDB Atlas - Deploying a Managed Cloud Database
Maximizing Backend Efficiency with Asynchronous Programming
Creating a REST API with the Express Framework
How to read related data efficiently (populate)
Maximize reading performance by appropriately embedding child documents in parent documents.
Maximize search performance by applying indexes
Maintain consistent data management using transactions (Multi-Document Transactions).
Deploying a Backend Server on AWS Lightsail
Comparing relational databases to MongoDB
Below are some of the materials used in the lecture :)
Q. Is this course for Node.js (Javascript) developers? A. This course is about MongoDB. Node.js is a tool to demonstrate the overall flow of how backend developers can effectively utilize MongoDB. Therefore, even if you're developing backends in another language, you can still take this course. The Node.js-related sections cover fundamental, commonly used concepts (REST API, asynchronous programming). With a solid understanding of these concepts, you'll be able to use MongoDB effectively in any development environment. :)
Q. Is there a reason why we are handling the backend (Node.js) together? A. This course teaches backend developers how to properly design and use a MongoDB database. Therefore, we cover basic backend development early in the course to ensure proper database utilization. Also, this course is not a DevOps course. We won't teach you how to install a database, build replica sets, or manage sharding. Instead, you'll use MongoDB Atlas, a managed cloud service that automates these DevOps tasks.
Q. Do you also learn MongoDB Aggregates?
A. This lecture focused on how to effectively utilize MongoDB in a MongoDB-like way for "typical" backend development. Using Aggregates in frequently-used, general APIs can overload the database, so I don't recommend it. Simply put, frequent use of Aggregates means you're using MongoDB like a relational database, rather than using it in a MongoDB-like way. Therefore, this lecture doesn't cover Aggregates. I'll show you how to properly utilize MongoDB without Aggregates! This doesn't mean Aggregates are bad; they simply have a specific use case. They're a powerful tool in data engineering, such as generating statistics or processing large amounts of data. Compared to general APIs, these data engineering processes are much less frequently called and can tolerate long response times. For example, if you want to extract quarterly sales data, you could run an aggregate batch once a quarter, store the results, and then retrieve them quickly. I plan to produce a MongoDB-based data engineer lecture in the future. At this time, we will cover MongoDB Aggregate, as well as big data management with MongoDB Data Lake and data visualization with MongoDB Charts!
Q. Please tell us what prompted you to start this course. A. I'm not a major in this field. I learned by analyzing and applying fragmented information online. Repeating this process allowed concepts to become abstracted and organized. "Abstraction" here is a crucial concept. During development, you might only implement simple functions to make a service work. However, developers who excel at "abstraction" can create services that "work" and "scalable." Another way to put it is that they're developers who have a strong understanding of "Why." However, the more recent a technology is, the less understanding of "Why" it often becomes due to previous community development. So, I created a course on MongoDB, a relatively unfamiliar database. Please understand "Why" and create many great services!
Recommended for these people
Who is this course right for?
For those who want to use MongoDB properly
For those who want to get started with backend development
Anyone who wants to build a highly scalable backend and database
nodejs+mongodb로 app개발하시는 개발자들에게 강추합니다. 알기 쉬운 설명으로 복잡한 부분도 잘 가르쳐주고 있어요. 두가지 단점이 보이는데 한가지는 중간중간에 실수하시고 그거 찾는데 시간이 많이 가는 부분들이 있는데 그런부분들 편집되면 더 좋을거 같아요. 두번째는 실습화면이 너무 작아서 따라가기가 불편합니다. 좀더 zoom in을 통해서 실습화면을 확대해서 찍어주셨으면 하는 아쉬움이 있네요. 컨텐츠 자체로는 VERY GOOD입니다. 감사합니다.