Нужно понимать что даже если хранить JSON в PostgreSQL под gin индексом, то это будет быстрее чем Btree в Mongo. Потому что using index with vodka ! JSON в PostgreSQL можно и не нормализовать, там есть flyweight шаблон, так что ничего лишнего он хранить не будет - посмотрите примеры работы. А вот в реляционных табличках какого-нить enum будет более чем достаточно, хотя я обычно не ленюсь, и создаю кучу табличек с id name +unique, и отдельным ts полем для поиска.