Основні відмінності - модель даних та можливості запитів.
Ключові цінності магазинів
Перший тип дуже простий і, ймовірно, не потребує подальших пояснень.
Модель даних: більше, ніж зберігає ключ-значення
Хоча існують суперечки щодо правильної назви баз даних, таких як Кассандра, я хотів би назвати їх магазинами сімейних колонок . Хоча пари ключ-значення є важливою частиною Кассандри, але це не обмежується лише цим. Це дозволяє вкладати пари ключ-значення, тому ключ може посилатися на кілька пар під-ключ-значення.
Однак ви не можете вкладати пари ключ-значення нескінченно довго. Ви обмежені трьома рівнями (сімейства стовпців) або чотирма рівнями вкладеності (сімейства суперколон). Якщо термін сімейство стовпців не дзвонить, див. WTF - це стаття SuperColumn , це гарне пояснення моделі даних Кассандри.
Бази даних документів , такі як CouchDB та MongoDB, зберігають цілі документи у вигляді об'єктів JSON . Ви можете розглядати ці об'єкти як вкладені пари ключ-значення. На відміну від Кассандри, ви можете вкладати пари ключ-значення скільки завгодно. JSON також підтримує масиви і розуміє різні типи даних, такі як рядки, числа та булеві значення.
Запит
Я вважаю, що магазини сімейства колонок можна запитувати лише за допомогою ключа або шляхом написання функцій зменшення карти. Ви не можете запитувати значення, як це було б у базі даних SQL. Якщо вашій програмі потрібні більш складні запити, вам доведеться створювати та підтримувати індекси для доступу до бажаних даних.
Бази даних документів також підтримують запити за функціями ключа та зменшення карти, але також дозволяють робити базові запити за значенням, наприклад, "Надіслати мені всіх користувачів із понад 10 публікаціями". Таким чином, бази даних документів є більш гнучкими.