Ba loại cơ sở dữ liệu NoSQL mà tôi đã đọc về là khóa-giá trị, hướng cột và hướng tài liệu.
Khóa-giá trị khá dễ hiểu - một khóa có giá trị đơn giản.
Tôi đã thấy cơ sở dữ liệu hướng tài liệu được mô tả giống như khóa-giá trị, nhưng giá trị có thể là một cấu trúc, như một đối tượng JSON. Mỗi "tài liệu" có thể có tất cả, một số hoặc không có khóa nào giống với khóa khác.
Định hướng cột dường như rất giống với định hướng tài liệu ở chỗ bạn không chỉ định cấu trúc.
Vậy sự khác biệt giữa hai cái này là gì, và tại sao bạn lại sử dụng cái này hơn cái kia?
Tôi đã đặc biệt xem xét MongoDB và Cassandra. Về cơ bản, tôi cần một cấu trúc động có thể thay đổi, nhưng không ảnh hưởng đến các giá trị khác. Đồng thời, tôi cần có thể tìm kiếm / lọc các khóa cụ thể và chạy báo cáo. Với CAP, AP là quan trọng nhất đối với tôi. Dữ liệu "cuối cùng" có thể được đồng bộ hóa giữa các nút, miễn là không có xung đột hoặc mất dữ liệu. Mỗi người dùng sẽ nhận được "bảng" của riêng họ.