gpt4 book ai didi

ruby-on-rails - 使用 Rails 4(和 Hstore)在 PostgreSQL 中存储嵌套哈希

转载 作者:行者123 更新时间:2023-11-29 11:15:19 25 4
gpt4 key购买 nike

我有一个 Rails 应用程序,它从 Google API 聚合了大量数据。我目前将 JSON 响应存储在 MongoDB 中(因此我的 Rails 应用程序同时具有 pg 和 mongo)。然而,今天,我遇到了 PostgreSQL Hstore 扩展,我决定试一试。

不幸的是,我遇到了一个问题。 API 给出的 JSON 是多层次的,因此 JSON.parse 之后的 Ruby Hash 包含哈希,其中包含新的哈希。但是,Hstore 是字符串键/值存储,它只有 1 层深。所以第一个散列中的散列只是变成字符串。

我发现真正令人讨厌的 hack 是 eval 变成字符串的散列:

eval("{ "foo" => "bar" }")

我不喜欢这样。关于做什么的任何提示?我应该继续使用 MongoDB 还是有更好的方法在 PG 中存储多级深度哈希?

最佳答案

您应该尝试使用 Postgresql 的 JSON 扩展。它将完全按照您的意愿进行:验证和存储 JSON。最初 JSON 扩展是在 9.2 中添加的。 Postgres 9.3 为 JSON 扩展添加了更多特性,包括新的运算符和函数。 postgres 9.4 将具有对 JSON 的高级索引支持,因此您可以使用此设置面向 future 。

相关链接: 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

关于ruby-on-rails - 使用 Rails 4(和 Hstore)在 PostgreSQL 中存储嵌套哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18861724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com