我有一个Rails应用程序,从Google API汇总了大量数据。目前我将JSON响应存储在MongoDB中 (所以我的Rails应用程序同时具有pg和mongo)。然而,今天,我遇到了PostgreSQL Hstore扩展,并决定试一试。
不幸的是,我遇到了一个问题。由API提供的JSON具有多层结构,因此在JSON.parse
之后,Ruby哈希包含哈希,这些哈希包含新哈希。但是,Hstore
是一个字符串键/值存储,它只能深入1级。因此,第一个哈希内部的哈希就变成了字符串。
我发现的真正恶心的方法是对已被转换为字符串的哈希进行eval
处理:
eval("{ "foo" => "bar" }")
我不喜欢这个。有什么建议吗?我应该继续使用 MongoDB 还是有更好的方法可以在 PG 中存储多级深哈希表?