MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Các câu hỏi phỏng vấn MongoDB phổ biến

Nếu bạn đã lọt vào danh sách lựa chọn thành công với tư cách là người được phỏng vấn cho chủ đề trên, chúng tôi khuyên bạn nên kiểm tra một số câu hỏi thường gặp được cung cấp trong hướng dẫn bài viết này. Các câu hỏi phỏng vấn MongoDB được thiết kế có chủ đích để giúp độc giả của chúng tôi làm quen với bản chất và dạng câu hỏi mà họ có thể gặp phải trong cuộc phỏng vấn với MongoDB.

Tuy nhiên, một điểm quan trọng cần lưu ý là những người phỏng vấn giỏi hầu như không hỏi những câu hỏi cụ thể trong cuộc phỏng vấn. Thay vào đó, họ đôi khi có xu hướng trở nên chuyên nghiệp và khó đoán.

Lưu ý: Luôn có một số khái niệm cơ bản về chủ đề này trước khi phỏng vấn. Điều này sẽ giúp bạn trả lời hầu hết các câu hỏi do người phỏng vấn hoặc hội đồng phỏng vấn đặt ra.

Hướng dẫn bài viết này sẽ chỉ ra một số câu hỏi thường gặp trong cuộc phỏng vấn MongoDB. Do đó, hãy theo dõi để tìm hiểu thêm.

Các câu hỏi phỏng vấn MongoDB phổ biến

Dưới đây là một số câu hỏi phỏng vấn MongoDB được hỏi nhiều nhất:

1. MongoDB là gì?

Nó là một cơ sở dữ liệu hướng đến tài liệu cung cấp tính khả dụng cao, hiệu suất cao và khả năng mở rộng dễ dàng. MongoDB là một cơ sở dữ liệu NoSQL.

2. Cơ sở dữ liệu NoSQL là gì?

Cơ sở dữ liệu NoSQL giúp cung cấp một cách để truy xuất và lưu trữ dữ liệu được mô hình hóa bằng tất cả các phương tiện khác ngoài việc sử dụng các quan hệ dạng bảng (Những dữ liệu được sử dụng trong cơ sở dữ liệu quan hệ). Các loại cơ sở dữ liệu NoSQL khác nhau là:

  • Khóa-Giá trị
  • Định hướng theo cột
  • Định hướng tài liệu
  • Biểu đồ

3. MongoDB thuộc loại cơ sở dữ liệu NoSQL nào?

MongoDB lưu trữ dữ liệu dưới dạng tài liệu BSON vì nó là cơ sở dữ liệu hướng tài liệu. Các tài liệu BSON này được lưu trữ trong một bộ sưu tập.

4. Giải thích sharding và ý nghĩa của nó trong MongoDB?

Sharding là một kỹ thuật được sử dụng trong MongoDB để lưu trữ dữ liệu trên nhiều máy. MongoDB sử dụng sharding để hỗ trợ triển khai các tập dữ liệu lớn và các hoạt động thông lượng cao. Sharding là một cách tiếp cận MongoDB để đáp ứng các tiêu chuẩn và nhu cầu của tốc độ tăng trưởng dữ liệu nhanh chóng. Các phân vùng dữ liệu ngang trong DB hoặc công cụ tìm kiếm được gọi là phân đoạn cơ sở dữ liệu hoặc phân đoạn.

5. Kể tên một số tính năng chính của MongoDB

  • Ngôn ngữ truy vấn biểu cảm
  • Cơ sở dữ liệu có thể mở rộng linh hoạt cao
  • Mô hình dữ liệu linh hoạt dưới dạng tài liệu
  • Nhanh hơn nhiều so với các cơ sở dữ liệu truyền thống khác.

6. So sánh CouchDB và MongoDB ở các cấp cao hơn

Mặc dù cả CouchDB và MongoDB đều là cơ sở dữ liệu hướng tài liệu, MongoDB vẫn nổi bật như một lựa chọn tốt hơn cho các ứng dụng lớn đòi hỏi sự năng động trong các truy vấn và hiệu suất tuyệt vời của chúng. Tuy nhiên, điều này không có nghĩa là CouchDB không hiệu quả vì nó cũng được sử dụng cho các ứng dụng thỉnh thoảng thay đổi và sử dụng các truy vấn được xác định trước.

7. Làm cách nào để thêm dữ liệu trong MongoDB?

Câu lệnh cú pháp "insert" được sử dụng để thêm dữ liệu vào MongoDB. Ví dụ:để chèn một tài liệu duy nhất, hãy sử dụng cú pháp thu thập bên dưới:

insertOne

> db.fosslinux.insertOne ({“title”:“Tại sao tôi yêu Foss”})

Để chèn nhiều tài liệu vào một bộ sưu tập, hãy sử dụng cú pháp bên dưới:

insertmany

Phương thức này sẽ cho phép truyền các mảng vào các tài liệu trên cơ sở dữ liệu.

8. Làm cách nào để xóa một tài liệu trong MongoDB?

API CRUD được sử dụng trong MongoDB cho mục đích xóa vì nó cung cấp những điều sau:

deleteOne
deleteMany

Cú pháp có thể được sử dụng để xóa một tệp và nhiều tệp, tương ứng. Các cú pháp được cung cấp giúp lọc ra các tài liệu dưới dạng tham số đầu tiên của chúng. Các bộ lọc rất quan trọng vì chúng chỉ định các tiêu chí được đặt để khớp với các tài liệu được đặt ra sẽ bị xóa.

Ví dụ:

> db.fosslinux.deleteOne({"_id" : 4})

9. Cách truy vấn dữ liệu trong MongoDB

Truy vấn dữ liệu trong bảng giúp trả về một tập hợp con các tài liệu bên trong một bộ sưu tập (từ không có tài liệu đến tất cả các tài liệu có trong bộ sưu tập). “ tìm thấy ”Được sử dụng để thực hiện bất kỳ truy vấn nào trong MongoDB. Đối số đầu tiên được cung cấp sau câu lệnh find sẽ xác định các tài liệu được tính toán hoặc trả về.

Ví dụ:

> db.users.find({"age" : 24})

10. Giải thích bộ sao là gì trong MongoDB

Một tập hợp bản sao có thể được gọi là một cá thể nhóm mongo lưu trữ các tập dữ liệu tương tự. Trong một tập hợp bản sao, một nút là chính và nút kia là phụ. Tất cả dữ liệu sao chép từ các nút chính sang nút phụ.

11. Sao chép hoạt động như thế nào trong MongoDB?

Sao chép là quá trình đòi hỏi phải đồng bộ hóa dữ liệu trên các máy chủ khác nhau. Nhân rộng là chìa khóa vì nó hỗ trợ cung cấp ít dự phòng hơn trong khi tăng tính khả dụng của dữ liệu. Nhân bản là chìa khóa vì nó hỗ trợ ngăn cơ sở dữ liệu mất các máy chủ đơn lẻ do tính khả dụng của nhiều bản sao trong các máy chủ cơ sở dữ liệu khác nhau. Ngoài ra, sao chép cho phép người dùng khôi phục sau sự cố gián đoạn dịch vụ và lỗi phần cứng.

12. Làm nổi bật vai trò của trình biên dịch trong MongoDB

Một trình biên dịch cơ sở dữ liệu trong MongoDB hiển thị hiệu suất đặc trưng của mọi hoạt động được thực hiện đối với cơ sở dữ liệu. Để tìm các truy vấn của trình cấu hình chậm hơn mong đợi, bạn có thể sử dụng trình biên tập.

13. Giải thích ngắn gọn cách di chuyển các tệp cũ sang thư mục moveChunk trong MongoDB?

Có, các tệp cũ có thể được chuyển vào thư mục moveChunk. Điều này có thể được thực hiện trong một hoạt động phân đoạn bình thường. Các tệp được tạo dưới dạng bản sao lưu có thể bị xóa khi các thao tác hoàn tất. Di chuyển các tệp cũ sang thư mục moveChunk giúp tạo và tiết kiệm dung lượng.

14. Tính năng nào được sử dụng trong MongoDB để tạo bản sao lưu an toàn?

Trong MongoDB, ghi nhật ký được sử dụng trong khi tạo bản sao lưu an toàn.

15. Chỉ mục trong MongoDB là gì?

Các chỉ mục trong MongoDB hỗ trợ việc thực thi các truy vấn. Nếu các chỉ mục không có trong MongoDB, thì quá trình quét bộ sưu tập phải được thực hiện để quét tất cả các tài liệu trong bộ sưu tập và chọn tất cả các tài liệu có chứa câu lệnh truy vấn phù hợp.

16. Đặt tên cho các lựa chọn thay thế MongoDB

Dưới đây là một số lựa chọn thay thế MongoDB:

  • CouchDB
  • Cassandra
  • Redis
  • Hbase
  • Riak

17. MongoDB có yêu cầu nhiều bộ nhớ truy cập ngẫu nhiên (RAM) không?

Không, đây là điều thú vị về MongoDB. Bạn không cần nhiều RAM để chạy vì nó tự động khử phân bổ và phân bổ RAM dựa trên các yêu cầu quy trình khác.

18. Theo mặc định, có bao nhiêu chỉ mục được tạo bởi MongoDB cho một bộ sưu tập mới?

MongoDB tạo _id collection theo mặc định cho tất cả các bộ sưu tập mới.

19. Giải thích tầm quan trọng của truy vấn được đề cập trong MongoDB.

Với sự hỗ trợ của truy vấn được bao phủ, MongoDB có thể khớp các điều kiện truy vấn và trả về kết quả trường bằng cách sử dụng cùng một chỉ mục vì tất cả các trường đã được bao phủ trong chính chỉ mục. Điều này có thể được thực hiện mà không cần xem bên trong các tài liệu đang được sử dụng. Ngoài ra, các truy vấn được bao phủ được thực thi nhanh hơn vì các chỉ mục đôi khi được lưu trữ trong RAM.

20. Truy vấn được đề cập là gì?

Một truy vấn được đề cập là một truy vấn:

  • Các trường được tính toán trong kết quả tương tự như chỉ mục
  • Các trường được sử dụng trong phần truy vấn là một phần của các chỉ mục được sử dụng trong truy vấn

21. Tổng hợp trong MongoDB là gì?

Hoạt động tổng hợp hỗ trợ xử lý hồ sơ dữ liệu và trả về kết quả đã tính toán. Các phép toán tổng hợp giúp nhóm các giá trị từ các tài liệu khác nhau, thực hiện các phép toán khác nhau trên dữ liệu được nhóm và trả về một kết quả duy nhất. MongoDB có ba cách thay thế để thực hiện tổng hợp:

  • Sử dụng chức năng thu nhỏ bản đồ
  • Sử dụng quy trình tổng hợp
  • Sử dụng các lệnh và phương pháp tổng hợp nhằm mục đích duy nhất.

22. Giải thích sao chép là gì và nó hoạt động như thế nào trong MongoDB?

Sao chép trong MongoDB là quá trình đồng bộ hóa dữ liệu giữa các máy chủ. Mặt khác, sao chép làm tăng tính khả dụng của dữ liệu trong khi cung cấp khả năng dự phòng. Hỗ trợ sao chép ngăn cơ sở dữ liệu mất một máy chủ vì nhiều bản sao dữ liệu nằm trên các máy chủ DB khác nhau. Trong trường hợp gián đoạn dịch vụ và phần cứng, việc nhân bản lỗi sẽ giúp bạn khôi phục.

23. Bộ bản sao chính và phụ trong MongoDB

Trong MongoDB, bản sao được gọi là “single-master”, có nghĩa là chỉ một nút có khả năng chấp nhận các thao tác ghi tại một thời điểm. Các nút chính và nút chủ chấp nhận ghi. Tất cả các nút phụ (nô lệ) được sao chép từ các nút chính (chỉ đọc. Chúng chỉ có thể sẵn sàng nhưng không thể ghi).

24. Giải thích tại sao các tệp dữ liệu trong MongoDB lại lớn

Do cơ chế phân bổ trước các tệp dữ liệu để tránh phân mảnh hệ thống tệp và dự trữ không gian, MongoDB có xu hướng có các tệp dữ liệu rất lớn.

25. Giải thích công cụ lưu trữ trong MongoDB là gì?

Công cụ lưu trữ là một phần của cơ sở dữ liệu chịu trách nhiệm quản lý cách thức mà dữ liệu được lưu trữ trên đĩa. Ví dụ:một công cụ lưu trữ có thể hỗ trợ thông lượng cao hơn cho các hoạt động ghi linh hoạt trong khi một công cụ lưu trữ khác cung cấp hiệu suất tốt hơn, đảm bảo hiệu quả trong khi xử lý khối lượng công việc nặng nề

26. Giải thích cách viết nhật ký hoạt động trong MongoDB

MongoDB lưu trữ và áp dụng các thao tác ghi trong nhật ký trên đĩa và bộ nhớ trước khi mô phỏng các thay đổi đối với tệp dữ liệu khi chạy với tính năng ghi nhật ký. Các bài viết trên tạp chí là nguyên tử, có nghĩa là chúng đảm bảo tính nhất quán trên tất cả các tệp nhật ký trên đĩa. MongoDB có thể tạo một thư mục con tạp chí trong thư mục được xác định bởi dbpath bất cứ khi nào kích hoạt tính năng ghi nhật ký.

27. Đặt tên cho hai công cụ lưu trữ được sử dụng bởi MongoDB

Hai công cụ lưu trữ được MongoDB sử dụng là:

  • WiredTiger
  • MMAPv1

28. Giải thích cách khóa và giao dịch đạt được trong MongoDB

Để đạt được các khái niệm về khóa và giao dịch trong MongoDB, bạn có thể sử dụng lồng các tài liệu, còn được gọi là tài liệu nhúng. Bên cạnh đó, MongoDB hỗ trợ các hoạt động nguyên tử bất cứ khi nào làm việc trong một tài liệu.

29. GridFS trong MongoDB là gì?

GridFS là một đặc điểm kỹ thuật để truy xuất và lưu trữ các tệp vượt quá kích thước tối đa được BSON khuyến nghị là 16 MB. GridFS chia các tệp vượt quá giới hạn thông thường được khuyến nghị thành hai phần hoặc nhiều phần và lưu trữ chúng dưới dạng tệp riêng biệt bất cứ khi nào chúng vượt quá giới hạn lưu trữ.

30. Giải thích mức độ ảnh hưởng của đồng thời đến các tập hợp bản sao chính?

MongoDB luôn ghi vào oplog chính trong khi ghi vào tập hợp trên chính trong quá trình sao chép. Oplog chính là một tập hợp đặc biệt được tìm thấy trong cơ sở dữ liệu cục bộ. Do đó, MongoDB phải khóa cả cơ sở dữ liệu cục bộ và cơ sở dữ liệu bộ sưu tập trong những trường hợp như vậy.

31. Giải thích ý nghĩa của Không gian tên liên quan đến MongoDB

Tóm lại, một không gian tên được gọi là phần nối của bộ sưu tập và tên cơ sở dữ liệu. ví dụ:Foss.linux với Fo là cơ sở dữ liệu và linux là bộ sưu tập.

32. Giải thích cấu trúc ObjectID trong MongoDB?

ObjectID là một loại tài liệu BSON 12 byte chứa:

  • Bộ đếm 3 byte
  • Id quy trình 2 byte
  • Giá trị 4 byte hiển thị số giây
  • Mã định danh máy 3 byte

33. Giải thích cách MongoDB được coi là tốt hơn các cơ sở dữ liệu SQL khác.

MongoDB được biết đến với việc cho phép các cấu trúc tài liệu có khả năng mở rộng cao và linh hoạt. Ví dụ:một tài liệu dữ liệu đơn lẻ có thể chứa năm cột và các tài liệu khác trong cùng một bộ sưu tập có thể chứa mười cột. Cơ sở dữ liệu MongoDB nhanh hơn nhiều so với cơ sở dữ liệu SQL vì chúng có các kỹ thuật lưu trữ và lập chỉ mục hiệu quả.

34. Đặt tên cho tất cả các ngôn ngữ có thể được sử dụng với MongoDB?

Khi viết các câu hỏi phỏng vấn này, MongoDB hỗ trợ các ngôn ngữ chính thức sau đây C, C #, Java, C ++, Python, PHP, Ruby, Scala, Erlang, Go và Perl. Tất cả các ngôn ngữ được đề cập đều có thể được sử dụng với MongoDB. Tuy nhiên, điều này không ngăn cản thực tế là nhiều ngôn ngữ hơn có thể được giới thiệu trong tương lai để hỗ trợ MongoDB.

35. MongoDB có hỗ trợ các ràng buộc khóa ngoại không?

MongoDB không hỗ trợ các ràng buộc khóa ngoại và các mối quan hệ liên quan

36. Đánh dấu những điểm cần được xem xét khi tạo lược đồ trong MongoDB

Các điểm được cung cấp ở đây được yêu cầu phải được xem xét:

  • Bạn nên tham gia khi đang viết, không phải ở chế độ đọc
  • Nếu bạn đang sử dụng các tài liệu cùng nhau, bạn nên tách chúng ra; tuy nhiên, hãy kết hợp các đối tượng thành một tài liệu duy nhất
  • Tối ưu hóa lược đồ của bạn cho các trường hợp sử dụng thường xuyên
  • Luôn đảm bảo lược đồ được thiết kế phù hợp với yêu cầu của bạn
  • Các tổng hợp phức tạp nên được thực hiện trong lược đồ

37. Cung cấp các cú pháp được sử dụng để tạo và thả một bộ sưu tập trong MongoDB

Cú pháp được sử dụng để tạo bộ sưu tập là: db.createCollection (tên, tùy chọn)

Cú pháp được sử dụng để xóa bộ sưu tập là: db.collection.drop ()

38. ObjectID trong MongoDB bao gồm những gì?

ObjectID bao gồm các thành phần sau:

  • ID máy khách
  • Dấu thời gian
  • ID quy trình khách hàng
  • Bộ đếm tăng dần 3 byte

39. Đặt tên cho các kiểu dữ liệu được sử dụng trong MongoDB

MongoDB cung cấp nhiều loại dữ liệu dưới dạng giá trị trong tài liệu. Tài liệu MongoDB tương tự như các đối tượng trong JavaScript. Bên cạnh bản chất cặp giá trị thiết yếu của JSON, MongoDB cũng hỗ trợ nhiều loại dữ liệu bổ sung khác nhau. Các kiểu dữ liệu chính trong MongoDB là:

  • Boolean
{"x" : true}
  • Số
{"x" : 4}
  • Không có
{"x" : null}
  • Chuỗi
{"x" : "foobar"}
  • Ngày tháng
{"x" : new Date()}
  • Mảng
{"x" : ["a", "b", "c"]}
  • Biểu thức chính quy
{"x" : /foobar/i}
  • ID đối tượng
{"x" : ObjectId()}
  • Dữ liệu nhị phân
Binary data is a concatenation of arbitrary bytes
{"x" : function() { /* ... */ }}
  • Tài liệu được nhúng
{"x" : {"foo" : "bar"}}

40. Khi nào bạn nên sử dụng MongoDB?

MongoDB có thể được sử dụng cho nhiều thứ khác nhau. Đầu tiên, khi xây dựng các ứng dụng internet, bạn có thể sử dụng MongoDB. Thứ hai, MongoDB có thể được sử dụng để xây dựng các ứng dụng kinh doanh nhằm phát triển nhanh chóng và mở rộng quy mô một cách trang nhã. Các nhà phát triển xây dựng các ứng dụng có khả năng mở rộng bằng cách sử dụng các phương pháp linh hoạt đã quen thuộc với MongoDB vì nó là một lựa chọn tuyệt vời để xây dựng các ứng dụng có thể mở rộng. Nếu bạn cần thực hiện những điều sau, MongoDB sẽ là lựa chọn đầu tiên của bạn:

  • Mở rộng kho dữ liệu của bạn thành nhiều kích thước khổng lồ có thể quản lý được
  • Phát triển loại hình triển khai do thay đổi kinh doanh nhanh chóng
  • Quản lý, tìm kiếm và lưu trữ dữ liệu bằng cách sử dụng các thứ nguyên không gian địa lý, văn bản và chuỗi thời gian.
  • Hỗ trợ xây dựng phát triển lặp đi lặp lại nhanh chóng
  • Chia tỷ lệ đến các cấp độ cao hơn của lưu lượng ghi và đọc - MongoDB hỗ trợ mở rộng quy mô ngang thông qua tính năng phân bổ, phân phối dữ liệu trên các máy riêng biệt và tạo điều kiện cho các hoạt động thông lượng cao hơn chứa các tập dữ liệu lớn.

Kết luận

Bài viết này đã bao gồm toàn diện hầu hết tất cả các câu hỏi phỏng vấn chính mà người ta có thể gặp khi tham gia một cuộc phỏng vấn. Chúng tôi hy vọng những câu hỏi sẽ giúp bạn chuẩn bị đầy đủ cho cuộc phỏng vấn tiếp theo. Nếu bạn có bất kỳ câu hỏi nào bị bỏ lỡ, vui lòng đăng chúng trong phần nhận xét, vì khán giả của bạn có ý nghĩa rất lớn đối với chúng tôi. Cảm ơn vì đã đọc.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách thiết lập MySQL Master-Slave Replication trên Ubuntu 18.04

  2. Không thể ghi đè mô hình sau khi đã biên dịch Mongoose

  3. Làm cách nào để cập nhật nhiều trường bằng Update.Set trong MongoDB bằng trình điều khiển c # chính thức?

  4. Tại sao không nên đóng kết nối MongoDB ở bất kỳ đâu trong mã Node.js?

  5. Xác thực MongoDB 3.2 không thành công