Like the parent said, Postgres supports unstructured data with json fields. The syntax is "clean enough" and you can easily migrate to a full column with a single query.
Re:Bye Bye Mongo, Hello Postgres (2018)
by giantrobot on Sunday December 27, 2020 @02:51PM
(#25553721)
I like that I can easily build a view that includes "columns" from JSONB and normal table columns and clients are none the wiser. The clients get a consistent contract (the view schema) which can be backed by whatever tables make sense (or don't make sense but are used anyways).
I definitely appreciate the flexibility of a document store but I despise not having schemas for clients. Interface contracts reduce errors and ultimately make life easier for everyone. The database also has tons of information in RAM it can use to search and sort data, pushing those operations to the client balloons bandwidth requirements unnecessarily.
If you maintain clean layered code, accessing every collection via corresponding set of repository/data object classes - you will be just fine with MongoDB. But you better do that with SQL database too, anyway.
Mongo has schema enforcement, and if adding index it will keep and serve data straight from RAM.
With Mongo and null-friendly languages (Kotlin, PHP) I can just start writing documents with new fields right away.