У меня есть приложение Rails, которое собирает много данных из API Google. Я храню ответы JSON в MongoDB в настоящее время (так что мое приложение Rails имеет как pg, так и mongo). Однако сегодня я столкнулся с расширением PostgreSQL Hstore, и я решил попробовать.
К сожалению, у меня возникла проблема. JSON, предоставляемый API, имеет несколько уровней, поэтому Ruby Hash после JSON.parse
содержит хеши, содержащие новые хэши. Тем не менее, Hstore
- это хранилище строк/значений, и оно идет только на 1 уровень. Так что хэши внутри первого хэша просто становятся строками.
Действительно неприятный хак, который я нашел, - это eval
хэши, которые были превращены в строки:
eval("{ "foo" => "bar" }")
Мне это не нравится. Любые советы о том, что делать? Должен ли я продолжать использовать MongoDB или есть лучший способ хранить многоуровневые глубокие хэши в PG?