gpt4 book ai didi

postgresql - JSON 与 TEXT 字段在 Postgres 中保留值列表

转载 作者:行者123 更新时间:2023-12-05 04:05:01 25 4
gpt4 key购买 nike

在 Postgres 上保留以下内容的最佳方法是什么?

[{'property':'foo1', 'val': "foo_val"}, {'property': 'foo2', 'val': "foo_val2"}]

JSON 还是文本?

据我所知,JSON 适用于嵌套结构(使用 ->>)。但在这种情况下,它是一个平面结构。将其保留为 JSON 或 TEXT 是否仍然有意义。哪个更容易查询?

最佳答案

无论如何,对于非嵌套结构,我都会使用 JSON。 Postgres 支持运算符获取、比较、删除键/值对或整个对象。另请进一步阅读有关 JSONB 的内容,因为它可能更适合您的用例,尤其是当您计划对 json 值执行数据库操作并且还想索引特定键时。

当您将 json 存储为 TEXT 时,您不能简单地编写一个查询来匹配键的值,但是您可以使用内置的 json operators and functions 来做到这一点,您还可以用它做更多的事情。例如,您不能将 foo_val2 检索为某个键的值,因为字符串没有键值对,它都是文本。

我从惨痛的教训中了解到,没有针对包含运算符的优化,例如 LIKE,因此您仍然需要将 json 解压为文本,然后执行搜索 - see my question on StackOverflow关于这个话题。

总结JSONJSONB 应该是您处理 json 数据时的首选,因为它可以提供您所没有的灵 active 使用 TEXT。特别是如果您计划在数据库方面做一些工作,或者如果您发现自己愿意这样做。

关于postgresql - JSON 与 TEXT 字段在 Postgres 中保留值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51830476/

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