if *_*one 10 postgresql ruby-on-rails hstore ruby-on-rails-4
我有一个Rails应用程序,它汇集了来自Google API的大量数据.我目前在MongoDB中存储JSON响应(所以我的Rails应用程序同时包含pg和mongo).但是,今天,我遇到了PostgreSQL Hstore扩展,我决定尝试一下.
不幸的是,我遇到了一个问题.API提供的JSON是多层深度的,因此Ruby Hash JSON.parse包含哈希,其中包含新的哈希值.但是,Hstore是字符串键/值存储,它只有1级深度.所以第一个哈希中的哈希就变成了字符串.
我发现真正令人讨厌的黑客攻击eval是变成字符串的哈希:
eval("{ "foo" => "bar" }")
Run Code Online (Sandbox Code Playgroud)
我不喜欢这个.有关怎么做的提示?我应该继续使用MongoDB还是有更好的方法在PG中存储多级深度哈希值?
小智 6
您应该尝试使用Postgresql的JSON扩展.它将完全符合您的要求:验证并存储JSON.最初在9.2中添加了JSON扩展.Postgres 9.3为JSON扩展添加了更多功能,包括新的运算符和函数.postgres 9.4将为JSON提供高级索引支持,因此您可以通过此设置获得未来保障.
相关链接: http://www.postgresql.org/docs/9.3/static/functions-json.html http://wiki.postgresql.org/wiki/What "s_new_in_PostgreSQL_9.3#JSON:_Additional_functionality
| 归档时间: |
|
| 查看次数: |
8518 次 |
| 最近记录: |