Sự khác biệt chính là mô hình dữ liệu và khả năng truy vấn.
Cửa hàng 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: nhiều hơn các cửa hàng 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ác 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, nó không chỉ giới hạn ở đó. 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ụ.
Mặc dù vậy, bạn không thể lồng 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 họ cột thuật ngữ không đổ chuông, hãy xem WTF là một bài báo SuperColumn , đó là một 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 nhỏ 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.