강의

멘토링

로드맵

Inflearn brand logo image
Programming

/

Back-end

Hướng dẫn hoàn chỉnh MongoDB dễ hiểu và sâu sắc nhất [ By. Người không chuyên ngành & Nhà phát triển Kakao ]

Khóa học này là một lớp master class chuyên sâu, đề cập một cách bài bản về các nguyên lý cơ bản và cách ứng dụng thực tế của MongoDB. Bắt đầu từ các khái niệm cốt lõi của MongoDB, bạn sẽ học một cách có hệ thống các nội dung thiết yếu trong thực tế như thiết kế cơ sở dữ liệu, thao tác CRUD, lập chỉ mục (indexing), pipeline tổng hợp (aggregation pipeline), tối ưu hiệu suất, transaction, bảo mật, v.v. Khóa học giải thích từng bước để ngay cả người mới bắt đầu cũng có thể hiểu, và bạn có thể nắm vững nguyên lý hoạt động của MongoDB một cách sâu sắc thông qua các bài thực hành và ví dụ. Đây là khóa học nhập môn và thực hành tốt nhất dành cho các lập trình viên muốn xây dựng năng lực MongoDB vững mạnh cho công việc thực tế.

(4.3) 9 đánh giá

65 học viên

  • Hong
실습 중심
데이터
데이터베이스
데이터모델링
취업
Java
SQL
MySQL
MongoDB
database

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

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

  • Mẫu thiết kế schema trên MongoDB

  • 5 cách thiết kế index trong MongoDB

  • Tùy chọn Preference trong MongoDB

  • Sự khác biệt thiết kế schema RDBMS và NoSQL

  • CRUD với MongoDB

  • Các toán tử khác nhau trong MongoDB

  • Đặc điểm nổi bật trong MongoDB [ Xử lý cache hoặc cấu trúc ]

  • Phân mảnh, Ánh xạ bộ nhớ, Bộ bản sao

  • 플랫폼에 따른 Schema 설계 예제

Lớp học MongoDB master class tốt nhất, gần với chuẩn mực và trung thành với những kiến thức cơ bản

Các bạn xem xét những yếu tố nào trong quá trình lựa chọn Database??

  • Khả năng mở rộng có thể chịu được lưu lượng truy cập cao

  • Hiệu suất xử lý dữ liệu nhanh chóng và ổn định

  • Hỗ trợ linh hoạt cho các cấu trúc dữ liệu đa dạng

  • Đảm bảo tính an toàn và nhất quán của dữ liệu ngay cả khi xảy ra sự cố


Những yếu tố này đều là điều kiện cần thiết phải được cân nhắc kỹ lưỡng trong các dịch vụ hiện đại.

Và thực tế, để đáp ứng những điều kiện này, chúng ta sẽ phải suy nghĩ sâu sắc về cấu trúc cơ sở dữ liệu và cách sử dụng nó. Vậy thì, cơ sở dữ liệu nào có thể đáp ứng tất cả những yêu cầu đa dạng này? Chính là MongoDB.


Nhiều tài liệu và bài gi강 khi giới thiệu về MongoDB

  • Chỉ dừng lại ở việc giải thích lý thuyết đơn giản, hoặc,

  • Thông tin thường chỉ dừng lại ở mức độ khái niệm về việc cấu trúc bên trong 'được tổ chức như thế này'.


Nhưng khóa học này thì khác.

  • Cung cấp các ví dụ thiết kế schema đa dạng phù hợp với môi trường platform/service thực tế

  • Các mẫu và bí quyết có thể áp dụng ngay trong thực tế

  • Replica Set, Sharding, Memory Mapping File và các kiến trúc thiết yếu khác thông qua thực hành

  • Khóa học nâng cao về Cache và lý thuyết CAP trong kiến trúc hiện đại

  • CRUD của MongoDB so với SQL

Không chỉ dừng lại ở lý thuyết, hãy biến những công nghệ có thể áp dụng ngay vào dịch vụ thực tế thành của riêng bạn. Đây sẽ là thời gian cùng nhau suy nghĩ và phát triển.

Tại sao phải học MongoDB...?

MongoDB là một cơ sở dữ liệu NoSQL hỗ trợ lập trình hiện đại và có thể áp dụng linh hoạt để đáp ứng các yêu cầu đa dạng.

📚Lược đồ động (Dynamic Schema)


Mỗi khi cấu trúc dữ liệu thay đổi, bạn không cần phải Alter bảng, có thể tự do thêm các trường mới hoặc áp dụng cấu trúc khác chỉ cho một số document. Nhờ vậy, nó được tối ưu hóa cho việc tạo prototype nhanh chóng và thay đổi yêu cầu thường xuyên.

📚Lưu trữ dựa trên Document-Oriented, BSON


MongoDB lưu trữ dữ liệu dưới dạng "document" theo định dạng BSON (Binary JSON) tương tự như JSON, và mỗi document có thể có cấu trúc độc lập, cho phép xử lý dữ liệu rất linh hoạt mà không có ràng buộc cột như RDBMS.

📚Hỗ trợ tích hợp các cấu trúc dữ liệu phức tạp (Embedded Documents & Arrays)


Có thể lưu trữ trực tiếp các cấu trúc dữ liệu phức hợp như mảng, tài liệu lồng nhau (đối tượng trong đối tượng), danh sách, v.v. trong một tài liệu, nên có thể truy vấn dữ liệu liên quan một lần mà không cần join, do đó hiệu suất đọc rất xuất sắc.

📚Khả năng mở rộng ngang mạnh mẽ (Built-in Sharding)


MongoDB có tính năng sharding tích hợp sẵn, cho phép tự động phân tán lưu trữ dữ liệu trên nhiều server khi dữ liệu tăng lên. Nhờ đó, việc mở rộng theo chiều ngang trở nên rất dễ dàng đối với các dịch vụ xử lý lưu lượng truy cập lớn và khối lượng dữ liệu khổng lồ.

Nội dung chính được đề cập trong khóa học

Tôi chỉ liệt kê những chủ đề tiêu biểu thôi, còn nhiều nội dung đa dạng khác đã được tích hợp vào bài giảng, hy vọng qua khóa học này chúng ta sẽ cùng nhau say mê với sức hấp dẫn của MongoDB!

📚 Các khái niệm cơ bản và kiến trúc của MongoDB

Hiểu được đặc điểm của NoSQL, Document-Oriented Database và hiểu cấu trúc Document cùng định dạng BSON, đồng thời nắm được sự khác biệt thực tế so với RDBMS.

📚 Chỉ mục và tối ưu hóa hiệu suất

Bạn sẽ hiểu về các loại chỉ mục đơn/phức hợp/văn bản/TTL/đa khóa, và dựa trên đó học các mẫu thiết kế và phương pháp thiết kế chỉ mục.

📚 Các mẫu schema của MongoDB

Cung cấp các phương pháp cấu thành schema theo môi trường hệ thống và thiết kế, cùng với nhiều pattern thiết kế schema tốt để xem xét tùy theo tình huống.

📚Hiểu về Preference Option và phương pháp xử lý ngoại lệ

Bạn sẽ học cách hiểu Preference Option trong MongoDB, phương pháp áp dụng dựa trên đó cho xử lý phân tán và cách giải quyết các trường hợp sai lầm trong thực tế thông qua các ví dụ cụ thể.

📚Hiểu về cách xử lý đa Transaction

MongoDB 4.0 trở lên hỗ trợ đa giao dịch giống như MySQL và thông qua điều này có thể đảm bảo tính nhất quán của dữ liệu. Tuy nhiên, do cách thức hoạt động khác với MySQL nên sẽ xảy ra Write Conflict, chúng ta sẽ cùng tìm hiểu về vấn đề này.

📚Các toán tử đa dạng trong MongoDB

Bạn sẽ học về các toán tử khác nhau được sử dụng để viết truy vấn thực tế hoặc cung cấp dữ liệu cho dịch vụ, và cùng với đó sẽ học về những phần cần chú ý và cân nhắc khi sử dụng các toán tử này.

📚Đặc điểm và ưu điểm của MongoDB

Chúng ta sẽ tìm hiểu về cấu trúc nội bộ mà MongoDB sử dụng để tối ưu hiệu suất và các phương pháp khác nhau được áp dụng để đảm bảo tính khả dụng cao. Thông qua điều này, bạn có thể học được MongoDB có những cấu hình nào để đảm bảo tính khả dụng cao và hiệu suất.

📚Cơ chế Lock để xử lý đồng thời [Nâng cao]

MongoDB xử lý lưu lượng truy cập đồng thời bên trong như thế nào?? Bạn có thể xem qua cơ chế khóa và MVCC để đảm bảo tính nhất quán của dữ liệu thông qua các ví dụ.

Xem trước nội dung bài giảng

📚Trong khóa học 'Thiết kế tài liệu MongoDB qua các ví dụ thực tế'

📚Trong bài học 'Cấu trúc chỉ mục và quy tắc tiền tố'

📚Trong khóa học 'Viết truy vấn thực tế'

4 giá trị quan trọng mà chúng tôi trân trọng

1. Bài giảng phải có tính nhân văn.

Dù có thể bị coi là thiếu chuyên môn, tôi nghĩ rằng những bài giảng dễ trình bày không phải là bài giảng thực sự. Thời gian thực hiện debug cũng là một phần của bài giảng.

2. Phải chuyên biệt hóa cho thực tế công việc

Lập trình không phải là nói suông. Bạn có thể cùng thực hiện việc triển khai thực tế và trải nghiệm quá trình hoạt động.

  • Các anh chị làm kế hoạch... xin hãy cứu tôi..

3. Phải có ích cho các học viên.

Tôi muốn truyền đạt những khái niệm mà tôi đã áp dụng trong thực tế và thấy hiệu quả. Thông qua khóa học này, bạn có thể trải nghiệm gián tiếp công việc thực tế hoặc nếu đã là người làm thực tế thì có thể thể hiện hiệu suất xuất sắc hơn trong môi trường làm việc.

4. Bài gi강không phải là kết thúc.

Trong quá trình học, mong các bạn để lại nhiều câu hỏi và thảo luận. Khóa học này không chỉ được tạo ra từ kiến thức của riêng tôi. Nó cũng tổng hợp ý kiến từ nhiều lập trình viên của các công ty lớn.

  • Tiểu sử ngắn gọn về những người đã giúp đỡ hoàn thành khóa học như sau.


private val supported_one = "Nhà phát triển backend nền tảng KakaoPay"

private val supported_two = "Nhà phát triển máy chủ API Toss Securities"

private val supported_three = "Nhà phát triển máy chủ startup unicorn yêu cầu giữ bí mật"

Người tạo ra khóa học này

  • Bắt đầu từ người không chuyên ngành, hiện tại là một lập trình viên đang làm việc tại Pangyo với vai trò phát triển backend nền tảng

  • Mục tiêu là chia sẻ phương pháp phát triển thực tế và lý thuyết phát triển, là người chia sẻ kiến thức tạo ra khóa học cùng với những người quen có năng lực xung quanh chứ không phải một mình

  • Người chia sẻ kiến thức đã được Inflearn phỏng vấn nhờ hoạt động tích cực

Những người tham gia khóa học này

  • Người tốt nghiệp chuyên ngành Công nghệ Thông tin tại các trường đại học ở Seoul

  • Đã từng làm việc tại ngân hàng hạng nhất và hiện tại là nhà phát triển backend và data engineer tại Kakao

  • Nhà phát triển đang đóng góp vào việc tạo ra các khóa học đa dạng cùng với Hong và cung cấp kiến thức cũng như môi trường thực tế

Những điều cần lưu ý trước khi học

Môi trường thực hành

  • Được quay bằng Macos M3.

  • Khóa học được cấu trúc sử dụng công cụ Mongo Compass.

  • Tôi đã sử dụng Mongo Atlas để tận dụng cluster.

  • Chúng tôi không cấu hình kiến trúc hệ thống giám sát.

🚨 Lưu ý bắt buộc 🚨

Các truy vấn và schema được viết trực tiếp trong bài giảng đã được tôi tổng hợp cùng trong ghi chú.

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

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

  • Người mới bắt đầu với MongoDB hoặc muốn học thật kỹ từ cơ bản

  • Lập trình viên hoặc kỹ sư sử dụng MongoDB trong công việc

  • Người muốn tìm hiểu về cấu trúc của MongoDB, như File ánh xạ bộ nhớ, Replica set, Sharding, v.v.

  • Người hiểu sự khác biệt giữa RDBMS và NoSQL, và muốn áp dụng MongoDB vào công việc

  • Những người quan tâm đến thiết kế index hiệu quả và tối ưu hóa query

  • Tất cả những ai quan tâm đến hệ thống lưu trữ dữ liệu và hệ thống phân tán, bao gồm nhà phát triển backend, kỹ sư dữ liệu, v.v.

Xin chào
Đây là

2,724

Học viên

185

Đánh giá

76

Trả lời

4.5

Xếp hạng

14

Các khóa học

자기 소개

집에서 빈둥대다 개발에 흥미를 느껴 개발 공부를 시작하였고 현재는 판교에서 플랫폼 서버 개발을 담당하여 진행하고 있습니다.

 

제가 공부를 했던 방법과 실무에서 접하실 수 있는 여러가지 문제점들과 해결책을 여러분들에게 제공하고 싶어 지식공유자 활동을 이어나가고 있습니다.

 

강의는 오로지 저만의 지식을 통해 만들어지지 않습니다. 모든 강의는 함께하시는 분들이 계십니다.

 

지식공유자 경력

[前] 샌드박스 블록체인 개발자

[前] 넥슨 자회사 백엔드 개발자

[] 판교에서 고여가는 서버 개발자

 

인터뷰 이력

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

Tất cả

33 bài giảng ∙ (4giờ 35phút)

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

Đánh giá

Tất cả

9 đánh giá

4.3

9 đánh giá

  • sunrise21님의 프로필 이미지
    sunrise21

    Đánh giá 2

    Đánh giá trung bình 4.0

    Đã chỉnh sửa

    3

    88% đã tham gia

    I had high expectations after seeing the course introduction. Perhaps that's why I was disappointed. If you just show one image and explain only verbally, it seems like an audio lecture would be sufficient. Even free YouTube lectures show dedication in their notes, but for a paid course to just pass like this, my disappointment is great. I recommend benchmarking other courses.

    • jhong
      Giảng viên

      Hello kknd님, thank you for providing this feedback. First, I'd like to share some areas where my thoughts differ slightly!! Firstly, for the lecture content, I basically intended for users to refer to Inflearn's features. I thought it would be good to refer to this part since Inflearn already summarizes what I'm saying. Also, I believe the way to study is not by watching someone else's summary, but by summarizing it yourself while studying. I think it's meaningless if the listener doesn't understand, no matter how passionately I explain. From this perspective, I wanted those taking the course to understand what I'm saying and organize it in their own words. However, it seems the outcome differs from the expected effect I intended, which leaves me feeling regretful 😭😭 Of course, this lecture was also created by benchmarking other lectures. But I didn't want to create a lecture where everything is spoon-fed. Naturally, this type of format isn't of great help to those taking the course. Nevertheless, as you've given feedback, I will strive to provide more diverse satisfaction next time and accept the feedback. Thank you for taking the time to leave a review!! Have a great day!

    • You've left a reply. The misunderstanding about the intention has been cleared up, so I've revised the rating. However, it is still a bit hard to accept. From a student's perspective, the goal is fast learning, but with the current lecture style, learning will be slower. I have changed it to the average rating.

    • jhong
      Giảng viên

      Thank you for your additional feedback like this. I think there are valid points in kknd's feedback as well 😭😭. Going forward, I will try to improve and prepare based on the feedback you've given. Have a great day!

  • ddddve님의 프로필 이미지
    ddddve

    Đánh giá 6

    Đánh giá trung bình 5.0

    5

    30% đã tham gia

    I am a server developer at Kakao who participated in creating this lecture together. I also mainly use MongoDB and utilize it as an attractive NoSQL. This time, the lecture content is a topic that mixes theoretical parts and practice. As such, I tried my best to help you understand MongoDB. You might think there aren't enough practical parts, but I believe that queries are something you really need to keep typing out yourself. Therefore, the recording focused mainly on which operators are available and the precautions associated with each operator. I hope this lecture, which I worked hard to create, will be of great help to those who watch it. Please show a lot of interest!! Have a good day~!

    • jhong
      Giảng viên

      😆😆😆😆 Thank you very much for your help~ Let's do our best for the next lecture too!

  • boster62109528님의 프로필 이미지
    boster62109528

    Đánh giá 9

    Đánh giá trung bình 5.0

    5

    61% đã tham gia

    It's a lecture that mixes theoretical parts with some practical exercises. It seems to be roughly 60:40. Basically, it's very beneficial for beginners, but the advanced course seems to be a bit difficult. For me, it still seems like difficult content.

    • jhong
      Giảng viên

      Hello Busta, thank you for leaving a good review. I think the topic of DB lectures is quite difficult. Even if I teach you a lot, you can't get familiar with it unless you actually try it yourself. Therefore, I think it would be great if you could try writing various queries based on the content I taught. Thank you!

  • ho6227574978님의 프로필 이미지
    ho6227574978

    Đánh giá 6

    Đánh giá trung bình 5.0

    5

    91% đã tham gia

    I enjoyed the good lecture.

    • jhong
      Giảng viên

      Hello JIos Ho! Thank you so much for leaving such a great review!! I'll make sure to come back with even better lectures in the future!! Have a wonderful day!!

  • hoos983485067님의 프로필 이미지
    hoos983485067

    Đánh giá 9

    Đánh giá trung bình 5.0

    5

    88% đã tham gia

    When I have time, this looks like a great topic to learn more deeply about MongoDB. Thank you for providing such a good lecture.

    • jhong
      Giảng viên

      Hello Hoos! Thank you so much for leaving such a nice review!! I'll make sure to come back with even better lectures in the future!! Have a great day!!

1.375.133 ₫

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

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!