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

Sự khác biệt giữa cơ sở dữ liệu dựa trên Tài liệu và Khoá / Giá trị?

Sự khác biệt chính là mô hình dữ liệu và khả năng truy vấn.

Kho khóa-giá trị

Loại đầu tiên rất đơn giản và có lẽ không cần giải thích gì thêm.

Mô hình dữ liệu:hơn cả kho khóa-giá trị

Mặc dù có một số tranh luận về tên chính xác cho các cơ sở dữ liệu như Cassandra, tôi muốn gọi chúng là cửa hàng gia đình cột . Mặc dù các cặp khóa-giá trị là một phần thiết yếu của Cassandra, nhưng nó không chỉ giới hạn ở điều đó. Nó cho phép bạn lồng các cặp khóa-giá trị, vì vậy một khóa có thể tham chiếu đến nhiều cặp khóa-giá trị phụ.

Tuy nhiên, bạn không thể lồng ghép các cặp khóa-giá trị vô thời hạn. Bạn bị giới hạn ở ba cấp độ (họ cột) hoặc bốn cấp độ lồng nhau (họ siêu cột). Trong trường hợp cụm từ cột không đổ chuông, hãy xem WTF là một bài viết về SuperColumn, đó là một lời giải thích tốt về mô hình dữ liệu của Cassandra.

Cơ sở dữ liệu tài liệu , chẳng hạn như CouchDB và MongoDB lưu trữ toàn bộ tài liệu dưới dạng các đối tượng JSON. Bạn có thể coi các đối tượng này là các cặp khóa-giá trị lồng nhau. Không giống như Cassandra, bạn có thể lồng các cặp khóa-giá trị tùy thích. JSON cũng hỗ trợ mảng và hiểu các kiểu dữ liệu khác nhau, chẳng hạn như chuỗi, số và giá trị boolean.

Truy vấn

Tôi tin rằng các cửa hàng thuộc nhóm cột chỉ có thể được truy vấn bằng khóa hoặc bằng cách viết các hàm thu gọn bản đồ. Bạn không thể truy vấn các giá trị như bạn làm trong cơ sở dữ liệu SQL. Nếu ứng dụng của bạn cần các truy vấn phức tạp hơn, ứng dụng của bạn sẽ phải tạo và duy trì các chỉ mục để truy cập dữ liệu mong muốn.

Cơ sở dữ liệu tài liệu cũng hỗ trợ các truy vấn theo khóa và chức năng thu gọn bản đồ, nhưng cũng cho phép bạn thực hiện các truy vấn cơ bản theo giá trị, chẳng hạn như "Cung cấp cho tôi tất cả người dùng có hơn 10 bài đăng". Cơ sở dữ liệu tài liệu linh hoạt hơn theo cách này.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách tiếp tục chèn sau lỗi trùng lặp khóa bằng PyMongo

  2. Làm cách nào để triển khai các quyền cấp trường cho MongoDB?

  3. Làm cách nào để đổi tên trường cho tất cả các tài liệu trong MongoDB?

  4. UnhandledPromiseRejectionWarning:MongooseServerSelectionError

  5. MongoDB - Giải phóng mảng bằng cách sử dụng tính năng tổng hợp và loại bỏ các bản sao