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

苏普里塔香卡

在Postgres上保持关注的最佳方法是什么?

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

JSON还是文本?

据我了解,JSON对于嵌套结构很有用(使用->>)。但是在这种情况下,它是一个扁平的结构。将其保留为JSON或TEXT还是有意义的。哪个更容易查询?

卡米尔(Kamil Gosciminski)

JSON无论如何,我都会选择非嵌套结构。Postgres支持操作员获取,比较,删除键/值对或整个对象。也请进一步阅读,JSONB因为这可能对您的用例更好,尤其是如果您打算对json值进行数据库操作,并且还希望索引特定键时。

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

我已经学会了很难的方法,例如LIKE没有对container运算符进行优化,因此您仍然需要将json解压缩为文本,然后执行搜索-请参阅我在StackOverflow上有关此主题的问题。

总结一下JSON或者JSONB应该是处理json数据时的首选,因为它可以为您提供您所没有的灵活性TEXT特别是如果您打算在数据库方面进行一些工作,或者您发现自己愿意这样做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 GET 表单中保留输入字段值的问号?

来自分类Dev

序列化为XML时,在列表中保留空值

来自分类Dev

使用AsyncTask在列表视图中保留正确的值项目

来自分类Dev

在Prolog中保留值

来自分类Dev

从列表的jsonlite转换中保留json对象中重复的名称

来自分类Dev

将列值转换为字段并在SQL Server中保留其他值

来自分类Dev

在组件中保留 HttpRequest 值

来自分类Dev

在 C++ 中保留列表列表

来自分类Dev

如何在 Formik 中保留每个切换字段的值?

来自分类Dev

在laravel 5.2中提交表单后如何在文本字段中保留值

来自分类Dev

在 ms 访问数据库中保留字段的旧值

来自分类Dev

在Golang结构字段中保留类型

来自分类Dev

在Java中保留空白的jtextfield字段

来自分类Dev

在Laravel中刷新页面后,从下拉列表中保留动态值

来自分类Dev

如何在用户的索赔列表中保留多个ClaimTypes.Role值?

来自分类Dev

从字典列表中保留某些日期

来自分类Dev

在列表中保留不同的字典版本

来自分类Dev

从对象列表中保留最新日期

来自分类Dev

如何在Clojure中保留对象列表?

来自分类Dev

Spark 在与列表匹配的列中保留单词

来自分类Dev

Laravel 5.6如何在json响应中保留float和int值?

来自分类Dev

局部变量在函数中保留值

来自分类Dev

如何在 numpy ndarray 中保留值

来自分类Dev

在递归函数C ++中保留原始值

来自分类Dev

在熊猫布尔比较中保留NaN值

来自分类Dev

PHP:在数组中保留所需的值

来自分类Dev

在后续函数中保留变量的值

来自分类Dev

在表中保留重复的最大值

来自分类Dev

在递归调用java中保留值