Câu hỏi phỏng vấn MongoDB hàng đầu

Cau Hoi Phong Van Mongodb Hang Dau



MongoDB là một hệ thống quản lý cơ sở dữ liệu NoSQL mã nguồn mở; nó không chỉ giúp dễ dàng lưu trữ dữ liệu phi cấu trúc mà còn quản lý nó. Bất cứ khi nào có câu hỏi về cách quản lý hàng triệu hàng dữ liệu phi cấu trúc, MongoDB đều được khuyến nghị.

Phiên bản đầu tiên của MongoDB được phát hành vào tháng 2 năm 2007 bởi 10 thế hệ Công ty phần mềm, sau đó vào năm 2013, 10gen đã đổi tên công ty thành MongoDB Inc.

MongoDB là một cơ sở dữ liệu NoSQL được sử dụng để lưu trữ dữ liệu ở dạng tài liệu JSON vì tính năng này, một lượng lớn dữ liệu phi cấu trúc có thể dễ dàng được lưu trữ và quản lý trong MongoDB. Tập hợp các tài liệu này có dữ liệu được gọi là bộ sưu tập. Và các bộ sưu tập này tương tự như các bảng được sử dụng trong cơ sở dữ liệu quan hệ để lưu trữ dữ liệu.







Có nhiều lý do khiến MongoDB trở nên phổ biến so với các cơ sở dữ liệu quan hệ và NoSQL khác, một số trong số đó là:



  • Các nhà phát triển có thể xác định cấu trúc theo các cặp khóa-giá trị
  • Giống như cơ sở dữ liệu quan hệ, các hàng và cột không cần thiết cho dữ liệu
  • Cấu trúc MongoDB phân cấp cho phép lưu trữ dữ liệu ở dạng mảng và cũng có thể lưu trữ dữ liệu phức tạp
  • Nó giúp các nhà phát triển quản lý cơ sở dữ liệu dễ dàng vì nó hỗ trợ nhiều ngôn ngữ lập trình
  • Nó cũng hỗ trợ các tính năng của gridFS và nhân rộng

Do tính phổ biến của nó, có rất nhiều cơ hội việc làm cho các nhà phát triển đang làm việc với MongoDB. Bài viết này liên quan đến những câu hỏi quan trọng nhất và thường được hỏi bởi nhiều tổ chức được xếp hạng hàng đầu.



Câu hỏi phỏng vấn MongoDB

Các câu hỏi thường gặp nhất được chia thành ba cấp độ: Cấp độ cơ bản, Cấp độ trung cấp và Cấp độ chuyên gia.





Cấp độ cơ bản

Những câu hỏi này liên quan đến các khái niệm và thuật ngữ cơ bản của MongoDB, và trong một cuộc phỏng vấn, mọi ứng viên đều phải trả lời những câu hỏi này.

Câu hỏi 1: Bạn biết gì về cơ sở dữ liệu NoSQL và các loại của chúng?
Cơ sở dữ liệu NoSQL là những cơ sở dữ liệu không lưu trữ dữ liệu trong bảng như cơ sở dữ liệu SQL làm thay vì chúng lưu trữ dữ liệu ở các dạng khác như tài liệu và biểu mẫu khóa-giá trị.



Có bốn loại cơ sở dữ liệu NoSQL quan trọng:

  • Cơ sở dữ liệu tài liệu: Các cơ sở dữ liệu này lưu trữ dữ liệu dưới dạng tài liệu JSON, các tài liệu này kết hợp để tạo thành các bộ sưu tập và các bộ sưu tập này kết hợp để tạo thành cơ sở dữ liệu.
  • Cơ sở dữ liệu khóa-giá trị: Các cơ sở dữ liệu này lưu trữ dữ liệu ở dạng khóa-giá trị, ví dụ: “Tên = John”, trong ví dụ này “Tên” là khóa và “John” là giá trị.
  • Cửa hàng cột rộng: Các cơ sở dữ liệu này lưu trữ dữ liệu dưới dạng bảng động, không giống như cơ sở dữ liệu quan hệ, các bảng này không có cấu trúc.
  • Cơ sở dữ liệu đồ thị: Các cơ sở dữ liệu này chứa các cạnh và nút; các nút được sử dụng để lưu trữ thông tin trong khi các cạnh được sử dụng để hiển thị mối quan hệ giữa các nút.

Câu hỏi 2: MongoDB là loại cơ sở dữ liệu NoSQL nào?
Cơ sở dữ liệu MongoDB thuộc về cơ sở dữ liệu tài liệu, có nghĩa là nó lưu trữ dữ liệu theo các tài liệu JSON. Nó không tuân theo bất kỳ lược đồ nào và cho phép chèn bất kỳ loại dữ liệu nào vào đó.

Câu hỏi 3: Cơ sở dữ liệu MongoDB và SQL cái nào tốt hơn?
MongoDB tốt hơn cơ sở dữ liệu SQL theo cách nó có thể xử lý dữ liệu phi cấu trúc trong khi cơ sở dữ liệu SQL chỉ xử lý dữ liệu có cấu trúc và lưu trữ nó mà không có bất kỳ hạn chế nào không giống như trong cơ sở dữ liệu quan hệ. Do tính năng không lược đồ, các truy vấn được xử lý nhanh chóng trong MongoDB so với cơ sở dữ liệu SQL vì dữ liệu không được đặt ở dạng bảng và thay vào đó, trong một số bảng, dữ liệu được đặt ở cùng một vị trí. dễ dàng để truy vấn truy cập dữ liệu và MongoDB cho phép dữ liệu của nó được ánh xạ bằng các ngôn ngữ lập trình khác, giúp người dùng dễ dàng làm việc trên đó.

Câu hỏi 4: Tài liệu và bộ sưu tập trong MongoDB là gì?
Dữ liệu được lưu trữ trong MongoDB dưới dạng tài liệu, sau đó các tài liệu này kết hợp để tạo thành một bộ sưu tập và một số bộ sưu tập kết hợp để tạo thành cơ sở dữ liệu. Để hiểu điều này, hãy xem xét một ví dụ về cơ sở dữ liệu của trường_dữ liệu, cơ sở dữ liệu của trường_dữ liệu chứa các tập hợp có dữ liệu về lớp và hơn nữa, các tài liệu này (dữ liệu_lớp) chứa dữ liệu của sinh viên (dữ liệu_sinh viên) ở dạng tài liệu.

Câu hỏi 5: Các kiểu dữ liệu MongoDB là gì?
Có nhiều kiểu dữ liệu mà MongoDB hỗ trợ:

Sợi dây Kiểu dữ liệu chuỗi lưu trữ dữ liệu ở dạng bảng chữ cái/ký tự và nó phải có 8 byte và thuộc UTF-8, ví dụ: Jone.
số nguyên Nó lưu trữ các số lên tới 64 bit nhưng kích thước có thể khác nhau tùy thuộc vào máy chủ, ví dụ: 1,54.
Boolean Điều này được sử dụng để lưu trữ các giá trị boolean có thể là 0 hoặc 1, ví dụ: John có ở trong lớp không? Câu trả lời của nó là có hoặc không.
Kép Điều này lưu trữ các số nổi như 22.8.
Phím tối thiểu/tối đa Nó được sử dụng để so sánh các giá trị tối thiểu và tối đa.
Mảng Điều này được sử dụng để lưu trữ các mảng hoặc nhiều giá trị trong một khóa.
Dấu thời gian Khi bất kỳ tài liệu nào được sửa đổi, nó có thể lưu giữ các bản ghi sửa đổi.
Sự vật Điều này lưu trữ các tài liệu nhúng
Vô giá trị Nó lưu trữ các giá trị null.
Biểu tượng Đây là loại chuỗi và có thể lưu trữ những ngôn ngữ có liên quan đến các ký hiệu
Ngày Ngày và giờ hiện tại có thể được lưu trữ trong các kiểu dữ liệu này
ID đối tượng Tài liệu có id duy nhất, những id này có thể được lưu trữ trong loại dữ liệu này
Dữ liệu nhị phân Dữ liệu nhị phân còn được gọi là ngôn ngữ máy được lưu trữ trong đó.
Mã số Mã Javascript được lưu trữ trong tài liệu với sự trợ giúp của loại dữ liệu này
Biểu hiện thông thường Bất kỳ biểu thức nào cũng có thể được lưu trữ trong kiểu dữ liệu này

Câu hỏi 6: Các lựa chọn thay thế cho MongoDB là gì?
MongoDB là một loại cơ sở dữ liệu NoSQL, với sự trợ giúp của dữ liệu phân tán lớn được lưu trữ trong các tài liệu BSON. Các lựa chọn thay thế của MongoDB có thể là Amazon DynamoDB, Microsoft Azure Cosmos DB, Couchbase, PostgreSQL, Redis và Cassandra.

Trình độ trung cấp

Những câu hỏi này liên quan nhiều đến các khái niệm nâng cao hơn là những điều cơ bản và trong một cuộc phỏng vấn, ứng viên trung bình nên trả lời những câu hỏi này.

Câu hỏi 7: Làm thế nào chúng ta có thể so sánh MongoDB và SQL ở mức độ cao?
Cơ sở dữ liệu SQL là cơ sở dữ liệu quan hệ lưu trữ dữ liệu theo cách có cấu trúc và tổ chức tốt dưới dạng hàng và cột tạo thành bảng, mặt khác, cơ sở dữ liệu MongoDB là cơ sở dữ liệu NoQuery, lưu trữ dữ liệu trong tài liệu, các tài liệu này được gọi chung được gọi là các bộ sưu tập và các bộ sưu tập này kết hợp để tạo thành một cơ sở dữ liệu.

Câu hỏi 8: Có bất kỳ chức năng nào như quản lý và khóa giao dịch ACID trong MongoDB không?
Không, theo mặc định, MongoDB không cung cấp bất kỳ giao dịch ACID nào trên nhiều tài liệu, tuy nhiên, nó có thể cung cấp hỗ trợ cho các giao dịch ACID trên một tài liệu.

Câu hỏi 9: Lập chỉ mục trong MongoDB là gì?
Trong MongoDB, chỉ mục là một cấu trúc dữ liệu đặc biệt chiếm một số trường của cơ sở dữ liệu và chứa một số dữ liệu để tạo chỉ mục. Chỉ mục cải thiện khả năng tìm kiếm của cơ sở dữ liệu, thay vì tìm kiếm một thứ cụ thể từ nhiều tài liệu, người dùng có thể trực tiếp truy cập tài liệu được chỉ định với sự trợ giúp của chỉ mục.

{
Thẻ học sinh = 1
Tên học sinh = 'Phao-lô'
Quốc gia = 'Hoa Kỳ'
}

Trong ví dụ trên, “Student_id =1” là một chỉ mục, vì vậy nếu bất kỳ ai tìm kiếm theo Student_id hoặc 1, thì tài liệu sau đây sẽ được mở.

Câu hỏi 10: Trong MongoDB, có thể tạo chỉ mục trên trường mảng không?

Có, chúng ta có thể tạo một chỉ mục trên một trường mảng trong MongoDB và nó lập chỉ mục cho từng giá trị của mảng. Trên thực tế, MongoDB tự tạo chỉ mục đa khóa và bạn không cần chỉ định nó nếu bất kỳ trường chỉ mục nào là một mảng.

Câu hỏi 11: Có thể chạy nhiều thao tác Javascript trong một phiên bản MongoDB không?
Có thể chạy nhiều thao tác Javascript trong một phiên bản mongod duy nhất vì trong phiên bản 2.4 của công cụ javascript MongoDB V8 đã được thêm vào.

Câu hỏi 12: Nhật ký trong MongoDB là gì?
Khi tính năng ghi nhật ký được bật trong MongoDB, nó sẽ tạo một thư mục con của Tạp chí, trong thư mục của /dữ liệu/db , là đường dẫn được xác định bởi dbPath, theo mặc định. Trong khi ghi nhật ký đang chạy, MongoDB chỉnh sửa và lưu trữ dữ liệu trong bộ nhớ và trên đĩa, trước khi các thay đổi dữ liệu được chuyển vào đĩa. Nó rất hữu ích trong trường hợp có bất kỳ lỗi nào xảy ra do thay đổi dữ liệu chưa được lưu, MongoDB có thể truy xuất các thay đổi từ tệp Nhật ký và có thể đảm bảo độ bền của tệp.

Cấp độ chuyên gia

Những câu hỏi này liên quan đến các khái niệm nâng cao hơn của MongoDB, ứng viên có chuyên môn nên trả lời những câu hỏi này.

Câu hỏi 13: Quy trình bảo vệ MongoDB là gì?
Trong MongoDB, sharding là quá trình phân phối dữ liệu của một cơ sở dữ liệu khổng lồ giữa nhiều máy chủ MongoDB. Vì vậy, thật dễ dàng để xử lý dữ liệu và cũng có thể trả lời các truy vấn với tốc độ cao. MongoDB hỗ trợ mở rộng theo chiều ngang thông qua sharding.

Cụm MongoDB bao gồm ba phần đó là mảnh vỡ ; nó còn được gọi là bản sao và có sẵn trên mọi máy chủ, Xoài ; họ đóng vai trò là người thông dịch giữa máy chủ và phân đoạn, và máy chủ cấu hình ; chúng lưu trữ cài đặt cấu hình của cụm và siêu dữ liệu.

Câu hỏi 14: Mở rộng quy mô là gì và nó xảy ra như thế nào trong MongoDB?
Khi có nhiều dữ liệu trên một nút, nhiều nút sẽ mang lại gần nút được tải để phân phối tải của nó. Quá trình chia sẻ tải của một nút cho các nút khác nhau này được gọi là chia tỷ lệ và còn được gọi là chia tỷ lệ theo chiều ngang.

Câu hỏi 15: Làm cách nào chúng tôi có thể lấy thông tin về các gói truy vấn bằng cách sử dụng ngôn ngữ truy vấn MongoDB?
Các giải thích() lệnh được sử dụng và nó hỗ trợ các chế độ là “allPlansExecution,ExecutStats và queryPlanner”. Ví dụ:

db . nhà hàng . giải thích ( 'chỉ số thực thi' ) . tìm thấy (
{ 'ẩm thực' : 1 , 'quận' : 'Brooklyn' }
) ;

Trong ví dụ trên, dữ liệu của nhà hàng được lấy từ lệnh giải thích().

Câu hỏi 16: Giải thích MongoDB Aggregation Framework.
Trong MongoDB, tìm nạp dữ liệu từ các bộ sưu tập khác nhau và sau khi tính toán trả về kết quả kết hợp được gọi là Tập hợp. Nó có ba bước, đầu tiên, nó sẽ lấy đầu vào và lọc các tài liệu mà chúng ta cần từ các tài liệu bằng cách sử dụng $match(), sau đó chúng tôi thực hiện công việc tổng hợp thông tin được lọc bằng cách sử dụng $group(), và cuối cùng, chúng tôi sắp xếp kết quả của chúng tôi bằng cách sử dụng $sort().

Câu hỏi 17: Có thể khóa nhiều cơ sở dữ liệu bằng thao tác MongoDB không?
Có, MongoDB có thể khóa nhiều cơ sở dữ liệu, để khóa nhiều cơ sở dữ liệu ngay lập tức, chúng tôi sử dụng thao tác MongoDB db.copyDatabase() , trong khi hoạt động, db.repairDatabase() áp dụng khóa toàn cầu đối với việc chỉnh sửa cơ sở dữ liệu và cũng hạn chế các hoạt động khác được thực hiện cho đến khi nó bị xóa.

Câu hỏi 18: GridFS trong MongoDB là gì?
Các tệp lớn vượt quá 16 MB như hình ảnh, tệp video và tệp âm thanh được quản lý trong MongoDB bằng cách sử dụng GridFS và được lưu trữ trong các phần và khối của tệp thay vì một tài liệu, theo mặc định, MongoDB chỉ hỗ trợ hai định dạng là fs. files và fs.chunks để lưu trữ các khối và siêu dữ liệu của tệp.

Câu hỏi 19: Bạn có thể mô tả hiện tượng sao chép trong MongoDB như thế nào?
Sao chép là quá trình đồng bộ hóa dữ liệu giữa nhiều máy chủ, trong khi MongoDB sao chép dữ liệu và sao chép nó sang các máy chủ khác nhau, vì vậy trong trường hợp máy chủ gặp sự cố, dữ liệu có thể được lấy từ bất kỳ máy chủ nào khác để đảm bảo tính bảo mật của dữ liệu.

Câu hỏi 20: Mongo Shell là gì?
Shell mongo là một nền tảng JavaScript, thông qua đó chúng ta có thể tương tác với MongoDB và cũng có thể thực hiện các sửa đổi trong dữ liệu bằng cách sử dụng các truy vấn. Nó cũng được sử dụng cho các mục đích quản trị như duy trì các phiên bản cơ sở dữ liệu. Theo mặc định, mongo shell được bao gồm trong tệp cài đặt nhưng nếu nó chưa được cài đặt, bạn có thể cài đặt nó từ máy chủ MongoDB.

Sự kết luận

MongoDB là một cơ sở dữ liệu NoSQL phổ biến, được sử dụng để quản lý dữ liệu dưới dạng tài liệu và rất dễ xử lý vì nó không có lược đồ. Nó được sử dụng bởi nhiều công ty nổi tiếng như Twitter và Facebook. Do tính phổ biến của nó, có rất nhiều cơ hội việc làm cho các nhà phát triển đang làm việc với giao diện MongoDB. Trong bài viết này, các câu hỏi phỏng vấn MongoDB thường gặp nhất đã được chia sẻ với các câu trả lời phù hợp.