Postgresql JSON vs文本字段,用于在Postgres中保留值列表

Postgresql JSON vs文本字段,用于在Postgres中保留值列表,postgresql,postgresql-json,Postgresql,Postgresql Json,在博士后保持以下内容的最佳方式是什么 [{'property':'foo1', 'val': "foo_val"}, {'property': 'foo2', 'val': "foo_val2"}] JSON还是文本 据我所知,JSON适合嵌套结构(使用->>)。但在这种情况下,它是一个平面结构。将其保留为JSON或文本是否仍然有意义。哪一个更容易查询?对于非嵌套结构,我还是选择JSON。Postgres支持运算符获取、比较、删除键/值对或整个对象。还请进一步阅读JSONB,因为它可能更适合您

在博士后保持以下内容的最佳方式是什么

[{'property':'foo1', 'val': "foo_val"}, {'property': 'foo2', 'val': "foo_val2"}]
JSON还是文本


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

对于非嵌套结构,我还是选择
JSON
。Postgres支持运算符获取、比较、删除键/值对或整个对象。还请进一步阅读
JSONB
,因为它可能更适合您的用例,特别是如果您计划对json值执行数据库操作,并且还希望为特定键编制索引的话

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

我通过艰苦的学习了解到,没有对containment操作符进行优化,例如像这样的
,因此您仍然需要将json解包为文本,然后执行搜索-关于这个主题

总结
JSON
JSONB
应该是处理JSON数据时的首选,因为它允许您灵活处理
文本
。特别是如果您计划在数据库方面做一些工作,或者您会发现自己愿意这样做