강의

멘토링

로드맵

Inflearn brand logo image
BEST
Programming

/

Back-end

Từ những điều cơ bản về mongoDB đến công việc thực tế (feat. Node.js)

mongoDB, NoSQL ngày nay được nhắc đến rất nhiều, nhưng liệu nó có còn là một cơ sở dữ liệu xa lạ không? Bạn có đang sử dụng nó như một cơ sở dữ liệu quan hệ (RDS/SQL) không? Ngay cả công nghệ tốt nhất cũng có thể phản tác dụng nếu không được sử dụng đúng cách. Đó là lý do chúng ta thường thấy những trường hợp thất bại khi sử dụng MongoDB. Bài giảng này sẽ dạy cho bạn mọi thứ, từ các khái niệm cơ bản đến bí quyết thực tế để bạn có thể sử dụng mongoDB nhiều nhất có thể.

(4.7) 89 đánh giá

1,341 học viên

  • sihoon
MongoDB
REST API
Node.js
AWS
JavaScript

Đánh giá từ những học viên đầu tiên

Dịch cái này sang tiếng Việt

  • Phát triển phụ trợ sử dụng đúng mongoDB

  • Phát triển REST API với Node.js và Express

  • Lập trình không đồng bộ (không đồng bộ)

  • Tối đa hóa hiệu suất đọc bằng cách sử dụng chỉ mục và lồng nhau

  • Giao dịch ACID

  • Triển khai máy chủ Node.js trên AWS lightail

  • dịch vụ quản lý đám mây mongoDB Atlas

MongoDB, cơ sở dữ liệu dựa trên NoSQL được yêu thích nhất!
Tôi sẽ chỉ cho bạn cách sử dụng MongoDB đúng cách. 😎

Giới thiệu chủ đề 📝

Tên của MongoDB bắt nguồn từ từ "humongous", nghĩa là "khổng lồ". Đây là một cơ sở dữ liệu dựa trên NoSQL được ra mắt vào năm 2009, sau sự bùng nổ của Internet, mở ra sự trỗi dậy của các từ khóa dữ liệu lớn. Cơ sở dữ liệu là nền tảng cốt lõi cho phát triển dịch vụ. Không giống như MongoDB, các cơ sở dữ liệu quan hệ quen thuộc hơn (MySQL, PostgreSQL) đã hơn 20 năm tuổi. Thật thú vị khi trong một hệ sinh thái lập trình, nơi các ngôn ngữ lập trình và công nghệ mới liên tục xuất hiện, lại có một phạm vi thay đổi nhỏ như vậy. Cơ sở dữ liệu là một công nghệ quan trọng và bảo thủ. Bất kỳ thay đổi nào đối với cơ sở dữ liệu đều có thể ảnh hưởng không chỉ đến phần backend mà còn cả phần frontend được xây dựng trên đó. Do đó, nhiều câu hỏi được đặt ra về MongoDB, một công nghệ còn khá xa lạ, và chúng ta thường thấy các ví dụ về việc triển khai thất bại:

  • Có nên sử dụng MongoDB tùy theo tình huống không?
  • Thương mại điện tử không nhất thiết phải là RDS sao?
  • Ban đầu thì nó tốt cho việc phát triển nhanh chóng và đơn giản, nhưng liệu cơ sở dữ liệu quan hệ có tốt hơn về sau không?
  • Một cơ sở dữ liệu thậm chí không hỗ trợ JOIN?

Tôi tin rằng những vấn đề này xuất phát từ việc đây là một công nghệ tương đối mới và kiến thức chuyên môn vẫn chưa được biết đến đầy đủ. MongoDB có thể được sử dụng cho các mục đích chung, tương tự như cơ sở dữ liệu quan hệ, và việc phát triển thương mại điện tử chắc chắn có thể được thực hiện với MongoDB (tôi là người dùng có kinh nghiệm). Và khi được sử dụng đúng cách, nó hiệu quả hơn nhiều so với cơ sở dữ liệu quan hệ khi xử lý khối lượng truy cập lớn.

Nguyên nhân đầu tiên gây ra những lỗi ứng dụng này là gì? Đó là do thiếu hiểu biết về triết lý của MongoDB. Chỉ học cách sử dụng thôi là chưa đủ. Và trên hết, bạn không nên tiếp cận nó như một cơ sở dữ liệu quan hệ. Cách tiếp cận giải quyết vấn đề của MongoDB về cơ bản khác biệt ở nhiều khía cạnh. Nếu bạn hiểu những đặc điểm này và sử dụng nó theo cách tương tự MongoDB, MongoDB sẽ mang lại rất nhiều lợi thế.

Tại sao bạn nên học ✒️

  1. Cơ sở dữ liệu có thể dễ dàng trở thành nút thắt về lưu lượng truy cập, nhưng MongoDB có thể giải quyết cơ bản vấn đề khả năng mở rộng này.
  2. Bạn thực sự có thể học MongoDB đồng thời với việc học phát triển back-end. Phát triển back-end và cơ sở dữ liệu là một!
  3. Hầu hết dữ liệu được truyền tải trong phát triển web đều ở định dạng JSON. MongoDB lưu trữ dữ liệu ở định dạng JSON (BSON). Điều này hầu như loại bỏ nhu cầu chuyển đổi dữ liệu backend hoặc ORM, giúp giảm thiểu rào cản gia nhập.
  4. Đây là một cơ sở dữ liệu đa năng. Do bản chất của cơ sở dữ liệu NoSQL, các giao dịch ACID thường không được hỗ trợ. Tuy nhiên, MongoDB đã hỗ trợ các giao dịch ACID kể từ phiên bản 4.0, đồng thời vẫn duy trì khả năng mở rộng theo chiều ngang của NoSQL.
  5. Chúng ta sẽ tìm hiểu về lập trình bất đồng bộ ở phần đầu khóa học. Đây là một khái niệm thiết yếu để phần backend giao tiếp hiệu quả với cơ sở dữ liệu.

Những gì bạn sẽ học được trong khóa học này ✏️

  1. Cách sử dụng cơ bản của MongoDB - CRUD
  2. mongoDB Atlas - Triển khai cơ sở dữ liệu đám mây được quản lý
  3. Tối đa hóa hiệu quả của Backend với lập trình không đồng bộ
  4. Tạo REST API bằng Express Framework
  5. Cách đọc dữ liệu liên quan một cách hiệu quả (điền vào)
  6. Tối đa hóa hiệu suất đọc bằng cách nhúng tài liệu con vào tài liệu mẹ một cách thích hợp.
  7. Tối đa hóa hiệu suất tìm kiếm bằng cách áp dụng chỉ mục
  8. Duy trì quản lý dữ liệu nhất quán bằng cách sử dụng giao dịch (Giao dịch đa tài liệu).
  9. Triển khai máy chủ phụ trợ trên AWS Lightsail
  10. So sánh cơ sở dữ liệu quan hệ với MongoDB

Dưới đây là một số tài liệu được sử dụng trong bài giảng :)

Các kỹ năng được đề cập ở đây 🧰

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

Câu hỏi dự kiến Hỏi & Đáp 🙋🏻‍♂️

H. Khóa học này có dành cho nhà phát triển Node.js (Javascript) không?
A. Khóa học này tập trung vào MongoDB. Node.js là một công cụ minh họa quy trình tổng thể về cách các nhà phát triển backend có thể sử dụng MongoDB hiệu quả. Do đó, ngay cả khi bạn đang phát triển backend bằng ngôn ngữ khác, bạn vẫn có thể tham gia khóa học này. Các phần liên quan đến Node.js bao gồm các khái niệm cơ bản, thường dùng (REST API, lập trình bất đồng bộ). Với sự hiểu biết vững chắc về các khái niệm này, bạn sẽ có thể sử dụng MongoDB hiệu quả trong bất kỳ môi trường phát triển nào. :)

H. Có lý do gì khiến chúng ta cùng nhau xử lý phần backend (Node.js) không?
A. Khóa học này hướng dẫn các nhà phát triển backend cách thiết kế và sử dụng cơ sở dữ liệu MongoDB một cách hiệu quả . Do đó, chúng tôi sẽ đề cập đến phần phát triển backend cơ bản ngay từ đầu khóa học để đảm bảo việc sử dụng cơ sở dữ liệu hiệu quả. Hơn nữa, khóa học này không phải là khóa học DevOps. Chúng tôi sẽ không hướng dẫn bạn cách cài đặt cơ sở dữ liệu, xây dựng bộ bản sao hoặc quản lý phân mảnh. Thay vào đó, bạn sẽ sử dụng MongoDB Atlas, một dịch vụ đám mây được quản lý giúp tự động hóa các tác vụ DevOps này.

H. Bạn có học MongoDB Aggregates không?

A. Bài giảng này tập trung vào cách sử dụng MongoDB hiệu quả theo cách tương tự MongoDB cho việc phát triển back-end "thông thường". Việc sử dụng Aggregate trong các API chung, thường dùng có thể gây quá tải cơ sở dữ liệu, vì vậy tôi không khuyến khích điều này. Nói một cách đơn giản, việc sử dụng Aggregate thường xuyên có nghĩa là bạn đang sử dụng MongoDB như một cơ sở dữ liệu quan hệ, thay vì sử dụng nó theo cách tương tự MongoDB. Do đó, bài giảng này không đề cập đến Aggregate. Tôi sẽ chỉ cho bạn cách sử dụng MongoDB đúng cách mà không cần Aggregate! Điều này không có nghĩa là Aggregate là xấu; chúng chỉ đơn giản là có một trường hợp sử dụng cụ thể. Chúng là một công cụ mạnh mẽ trong kỹ thuật dữ liệu, chẳng hạn như tạo thống kê hoặc xử lý lượng lớn dữ liệu. So với các API chung, các quy trình kỹ thuật dữ liệu này ít được gọi hơn nhiều và có thể chịu được thời gian phản hồi lâu. Ví dụ: nếu bạn muốn trích xuất dữ liệu bán hàng theo quý, bạn có thể chạy một lô tổng hợp mỗi quý một lần, lưu trữ kết quả và sau đó truy xuất chúng nhanh chóng. Tôi dự định sẽ thực hiện một bài giảng về kỹ sư dữ liệu dựa trên MongoDB trong tương lai. Vào thời điểm này, chúng ta sẽ tìm hiểu về MongoDB Aggregate cũng như quản lý dữ liệu lớn với MongoDB Data Lake và trực quan hóa dữ liệu với MongoDB Charts!

H. Xin hãy cho chúng tôi biết lý do nào khiến bạn bắt đầu khóa học này.
A. Tôi không phải là chuyên gia trong lĩnh vực này. Tôi học bằng cách phân tích và áp dụng thông tin rời rạc trên mạng. Việc lặp lại quá trình này cho phép các khái niệm trở nên trừu tượng và có tổ chức. "Trừu tượng hóa" ở đây là một khái niệm quan trọng. Trong quá trình phát triển, bạn có thể chỉ triển khai các hàm đơn giản để một dịch vụ hoạt động. Tuy nhiên, các nhà phát triển giỏi về "trừu tượng hóa" có thể tạo ra các dịch vụ "hoạt động" và "có khả năng mở rộng". Nói cách khác, họ là những nhà phát triển hiểu rõ về "Tại sao". Tuy nhiên, công nghệ càng mới thì sự hiểu biết về "Tại sao" thường càng ít do sự phát triển cộng đồng trước đó. Vì vậy, tôi đã tạo ra một khóa học về MongoDB, một cơ sở dữ liệu tương đối xa lạ. Hãy hiểu "Tại sao" và tạo ra nhiều dịch vụ tuyệt vời!

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Bất cứ ai muốn sử dụng mongoDB đúng cách

  • Bất cứ ai muốn tham gia phát triển phụ trợ

  • Bất kỳ ai muốn xây dựng cơ sở dữ liệu và phụ trợ có khả năng mở rộng cao

Cần biết trước khi bắt đầu?

  • Ngữ pháp cơ bản Javascript (hoặc kiến ​​thức lập trình cơ bản)

Xin chào
Đây là

2,686

Học viên

182

Đánh giá

261

Trả lời

4.7

Xếp hạng

3

Các khóa học

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

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

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

Chương trình giảng dạy

Tất cả

112 bài giảng ∙ (11giờ 56phút)

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

89 đánh giá

4.7

89 đánh giá

  • dongqsarang님의 프로필 이미지
    dongqsarang

    Đánh giá 1

    Đánh giá trung bình 4.0

    4

    99% đã tham gia

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

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

      Đánh giá 2

      Đánh giá trung bình 5.0

      5

      69% đã tham gia

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

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

        Đánh giá 13

        Đánh giá trung bình 4.7

        5

        95% đã tham gia

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

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

          Đánh giá 1

          Đánh giá trung bình 4.0

          4

          82% đã tham gia

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

          • 김시훈 (도도소프트)
            Giảng viên

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

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

          Đánh giá 1

          Đánh giá trung bình 5.0

          5

          99% đã tham gia

          기본기 익히기 매우 좋음

          Ưu đãi có thời hạn

          57.750 ₫

          25%

          1.614.287 ₫

          Khóa học khác của sihoon

          Hãy khám phá các khóa học khác của giảng viên!

          Khóa học tương tự

          Khám phá các khóa học khác trong cùng lĩnh vực!