Three ways to organise your closet
Relational is a dresser with labelled drawers: socks here, shirts there, every drawer cross-referenced so you can answer "which shirts go with which trousers." Document is a row of boxes, each holding one complete outfit (shirt, trousers, socks together) — fast to grab, slow to answer "show me every red shirt anyone owns." Key-Value is a row of hooks: each hook has a label, one item, and zero structure beyond that.
When each model wins
Relational wins when relationships matter and you want the database to enforce them. Document wins when the shape of each record genuinely varies and you query by document, not by relationship. Key-Value wins when you need raw speed for "give me X by exact key" and nothing else.
The PostgreSQL twist
PostgreSQL is the only major database that does all three credibly. Relational is the default. JSONB columns give you document-style storage with proper indexing. hstore gives you key-value. The pragmatic answer to "do I need MongoDB?" is almost always "no — add a JSONB column."