강의

멘토링

로드맵

Inflearn brand logo image
BEST
Programming

/

Back-end

mongoDB from basics to practice (feat. Node.js)

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.

(4.7) 89 reviews

1,341 learners

  • sihoon
MongoDB
REST API
Node.js
AWS
JavaScript

Reviews from Early Learners

What you will learn!

  • 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 ✒️

  1. Databases can easily become traffic bottlenecks, but MongoDB can fundamentally solve this scalability problem.
  2. You can truly learn MongoDB while also learning backend development. Backend development and databases are one and the same!
  3. 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.
  4. 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.
  5. 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 ✏️

  1. MongoDB Basic Usage - CRUD
  2. mongoDB Atlas - Deploying a Managed Cloud Database
  3. Maximizing Backend Efficiency with Asynchronous Programming
  4. Creating a REST API with the Express Framework
  5. How to read related data efficiently (populate)
  6. Maximize reading performance by appropriately embedding child documents in parent documents.
  7. Maximize search performance by applying indexes
  8. Maintain consistent data management using transactions (Multi-Document Transactions).
  9. Deploying a Backend Server on AWS Lightsail
  10. Comparing relational databases to MongoDB

Below are some of the materials used in the lecture :)

Skills covered here 🧰

mongoDB, Node.js, Javascript, Postman, AWS, mongoDB Atlas

Expected Questions Q&A 🙋🏻‍♂️

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

Need to know before starting?

  • Basic Javascript grammar (or basic programming knowledge)

Hello
This is

2,686

Learners

182

Reviews

261

Answers

4.7

Rating

3

Courses

현재 공동창업한 작은 스타트업 Ninjalerts에서 CTO역할로 일하고 있습니다. Ninjalerts는 이더리움 블록체인 데이터를 기반으로 NFT 거래 정보들을 실시간으로 알려주는 서비스에요!

전에 만나씨이에이에서 개발 팀장으로 있었어요. 시작은 기획자였는데 개발자가 부족한 탓에 외주를 맡기려다가 직접 개발할 기회가 생기면서 운 좋게 개발자로 전향했어요. 이후 자사몰을 자체 개발하면서 이커머스 개발팀장을 맡았어요.

온라인에 나온 다양한 좋은 자료들 덕분에 빠르게 성장할 수 있었어요. 제 노하우가 여러분들에게도 도움이 되길 바랍니다 :) Linkedin 프로필

Curriculum

All

112 lectures ∙ (11hr 56min)

Published: 
Last updated: 

Reviews

All

89 reviews

4.7

89 reviews

  • dongqsarang님의 프로필 이미지
    dongqsarang

    Reviews 1

    Average Rating 4.0

    4

    99% enrolled

    nodejs+mongodb로 app개발하시는 개발자들에게 강추합니다. 알기 쉬운 설명으로 복잡한 부분도 잘 가르쳐주고 있어요. 두가지 단점이 보이는데 한가지는 중간중간에 실수하시고 그거 찾는데 시간이 많이 가는 부분들이 있는데 그런부분들 편집되면 더 좋을거 같아요. 두번째는 실습화면이 너무 작아서 따라가기가 불편합니다. 좀더 zoom in을 통해서 실습화면을 확대해서 찍어주셨으면 하는 아쉬움이 있네요. 컨텐츠 자체로는 VERY GOOD입니다. 감사합니다.

    • 윤병록님의 프로필 이미지
      윤병록

      Reviews 2

      Average Rating 5.0

      5

      69% enrolled

      5년차 자바 개발에서 노드몽고DB로 전향하려고 공부중이였는데 많은 도움이 되었습니다. 많은 자료 인강을 통해 공부해왔는데 이자료가 가장 으뜸이였습니다. 앞으로도 좋은 강의 부탁드리겠습니다.

      • ㅌㅇ님의 프로필 이미지
        ㅌㅇ

        Reviews 13

        Average Rating 4.7

        5

        95% enrolled

        이해 하기 쉽게 잘 가르치십니다ㅎㅎ 다만, 디비 개념이 아에 없으면 중간에 멍해질 때 있음ㅎㅎ 추천 !

        • 신론님의 프로필 이미지
          신론

          Reviews 1

          Average Rating 4.0

          4

          82% enrolled

          강의는 정말 좋습니다. 근데 한가지 아쉬운 점은 화면 크기가 너무 작아 코드를 보기가 너무 힘들었어요. 화면 사이즈를 좀 키웠으면 훨씬 좋은 강의가 되었을 것 같습니다. 다음 강의는 화면을 학생들 위주에 맞게 키워서 만들어 주시면 감사하겠습니다.

          • 김시훈 (도도소프트)
            Instructor

            신론님 안녕하세요 :) 화면 크기 때문에 불편하셨죠. 첫 강의라 미숙한점이 많네요. 다음 강의 그리고 몽고 강의 개선할 때 화면 크기 꼭 조절해서 녹음하도록 할게요!

        • kookdong.kim님의 프로필 이미지
          kookdong.kim

          Reviews 1

          Average Rating 5.0

          5

          99% enrolled

          기본기 익히기 매우 좋음

          Limited time deal ends in 6 days

          $57,750.00

          25%

          $59.40

          sihoon's other courses

          Check out other courses by the instructor!

          Similar courses

          Explore other courses in the same field!