Я широко использовал MongoDB (в течение последних 6 месяцев), создавая иерархическую систему управления данными, и я могу ручаться за простоту настройки (установить, запустить, использовать!) И за скорость. Пока вы тщательно обдумываете индексы, они могут быть абсолютно быстрыми.
Я полагаю, что Cassandra, благодаря его использованию с крупномасштабными проектами, такими как Twitter, имеет лучшую функциональность масштабирования, хотя команда MongoDB там работает над паритетом. Я должен отметить, что я не использовал Cassandra после стадии пробного запуска, поэтому я не могу говорить о деталях.
Когда я оценивал базы данных NoSQL, для меня самым большим потрясением было то, что запросы - Cassandra - это просто гигантское хранилище ключей / значений, а запросы немного сложны (по крайней мере, по сравнению с MongoDB), поэтому для производительности вам придется дублировать довольно много данных в качестве своего рода ручного индекса. MongoDB, с другой стороны, использует модель «запрос по примеру».
Например, скажем, у вас есть коллекция (на языке MongoDB для эквивалента таблицы RDMS), содержащая пользователей. MongoDB хранит записи в виде документов, которые в основном являются двоичными объектами JSON. например:
{
FirstName: "John",
LastName: "Smith",
Email: "john@smith.com",
Groups: ["Admin", "User", "SuperUser"]
}
Если вы хотите найти всех пользователей по имени Смит, обладающих правами администратора, вы просто создадите новый документ (на консоли администратора с использованием Javascript или в работе с использованием языка по вашему выбору):
{
LastName: "Smith",
Groups: "Admin"
}
... а затем запустите запрос. Вот и все. Есть добавленные операторы для сравнения, фильтрации RegEx и т. Д., Но все это довольно просто, и документация на основе Wiki довольно хороша.