В каких случаях лучше использовать mongodb а в каких реляционную БД?
При какой структуре данных будет большая польза от mongo db? И при какой структуре данных стоит категорически отказаться от Mongo и использовать реляционную БД?
В названии типа хранилища (key-value или noSQL) уже скрыта часть ответа на вопрос. Если данных очень много, но они простые типа id-имя и сложные выборки не нужны, то годится и key-value. Если же вам нужна выборка по сложным условиям (id которые имеют баланс больше 100 но возраст меньше 30 и только мужской пол) то берите реляционные.
На хабре постоянно батлы идут на эти темы, думаю что их прочтение (а особенно комментариев к ним) позволит вам сложить собственное мнение на этот счёт. Реляционные базы данных обречены? Почему нужно 1000 раз подумать, прежде чем использ... Еж с ужом в одной корзине
Mongo - не key-value, а документоориентированная СУБД. Использовать нужно тогда, когда информация чаще нужна в виде документов, а не отношений таблиц, а отношения хранятся в документе денормализованном виде и редко пересчитываются.
Кажется сейчас почти нет никаких разумных доводов в пользу MongoDB. Postgres умеет почти все что умеет монга, плюс релейшены, констрейны, транзакции, функциональные индексы и куча всего. Из того что Postgres вроде бы еще не умеет это bulk upsert.
Postgres не умеет работать без транзакций, потому может быть избыточен там, где консистентность данных гарантируется бизнес-логикой слоя приложения. Такие приложения сложнее писать, но потенциально легче масштабировать горизонтально.