MongoDB — современная нереляционная документо-ориентированная база данных. Eё можно считать золотой серединой между реляционными DB и чистыми хранилищами key-value (как memcached).
Основные качества:
- Документо-ориентированность (документы хранятся в JSON-подобном формате)
- Индексы по любому или нескольким атрибутам
- Удобная репликация с автоматическим failover
- Богатый язык запросов
- Поддержка Map/Reduce
- Подсистема хранения файлов любого размера — GridFS
- Автоматический sharding
Масштабирование:
- Автоматическое (нужно выбрать shard key)
- Определить распределение данных
- Трудно изменить ключ после назначения
Данные разбиваются на блоки (chunks) размером < 64Mb или 100000 объектов. В фоновом режиме работает балансировщик.
Где использовать:
- Статистика
- Богатое key-value хранилище
- Прототипирование
- Динамические данные (CMS, опросы)