Според мен форматът на вашите данни трябва да бъде основна грижа при избора на бекенд за съхранение. Имате ли данни, които имат релационен характер? Ако да, може ли и добра ли е идеята да се моделират данните в документи? Моделирането на данни е толкова важно както в документната база данни, така и в релационната база данни, просто се прави по различен начин. Колко вида обекти имате и как са свързани? Могат ли DBrefs в Mongodb да свършат работа или ще пропуснете външни ключове толкова много, че ще бъде болезнено? Какви са вашите модели на достъп до данните? Просто извличате данни от един тип, филтрирани по стойност на полето, или имате сложни режими на извличане?
Имате ли нужда от ACID транзакционна цялост? Домейнът налага ли много ограничения върху данните? Имате ли нужда от коефициента на мащабируемост на документна база данни или това е просто „готино“ нещо?
Какви са вашите изисквания за последователност и целостта на данните? Някои NoSQL решения и по-специално MongoDB са доста хлабави по отношение на последователността на запис, за да получат производителност. NoSQL не е единен пейзаж и други продукти, напр. CouchDB има други характеристики в този отдел. Някои също са регулируеми.
Това са всички въпроси, които трябва да влязат в избора на съхранение.
Някои преживявания
- Извършването на обширно отчитане на съхранените данни може да бъде по-трудно, когато използвате MongoDB или която и да е база данни с документи и някои случаи на употреба са комбинирали RDBMS и document-db за тази цел.
- (Много) Различен модел на заявка. MongoDB също се различава от другите документи-dbs.
- Гъвкав за промяна на формата/схемата на данните по време на разработка
- Неизвестна територия
- различна степен на зрялост на драйвери и рамки
- Бързо
- По-прости (в много отношения) инструменти за продукти и управление (в сравнение с много продукти за RDBMS)
- Няма повече несъответствие на импеданса. Съхранението отговаря на данните, а не обратното.
- По-малко триене и по-директен достъп до данни.
- Домейнът е по-обвързан с постоянството (в зависимост от „нивото“ на ORM на NoRM, от това колко се абстрахира от бекенда. Не съм използвал NoRM, така че не мога да отговоря.)