在Postgres上保持关注的最佳方法是什么?
[{'property':'foo1', 'val': "foo_val"}, {'property': 'foo2', 'val': "foo_val2"}]
JSON还是文本?
据我了解,JSON对于嵌套结构很有用(使用->>)。但是在这种情况下,它是一个扁平的结构。将其保留为JSON或TEXT还是有意义的。哪个更容易查询?
JSON
无论如何,我都会选择非嵌套结构。Postgres支持操作员获取,比较,删除键/值对或整个对象。也请进一步阅读,JSONB
因为这可能对您的用例更好,尤其是如果您打算对json值进行数据库操作,并且还希望索引特定键时。
当您将json存储为时TEXT
,您不能简单地编写一个查询来匹配键的值,但是您可以使用内置的json运算符和函数来做到这一点,您还可以做很多事情。例如,您不能foo_val2
将某些键的值检索为字符串,因为字符串没有键值对,所以它全是文本。
我已经学会了很难的方法,例如LIKE
,没有对container运算符进行优化,因此您仍然需要将json解压缩为文本,然后执行搜索-请参阅我在StackOverflow上有关此主题的问题。
总结一下,JSON
或者JSONB
应该是处理json数据时的首选,因为它可以为您提供您所没有的灵活性TEXT
。特别是如果您打算在数据库方面进行一些工作,或者您发现自己愿意这样做。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句