当前位置: 首页 > 知识库问答 >
问题:

将json对象存储到PostgreSQL中的数据类型是什么?

拓拔意
2023-03-14

我想把下面的json对象存储到postgresql数据库中。

{
  "host": "xxx.xxx.xx.xx"
  "type": "OS"
}

你能告诉我在PostgreSQL中应该使用什么数据类型吗?提前谢了。

共有1个答案

韩彬
2023-03-14

如果您的数据总是包含相同的简单结构,我认为没有任何理由将它们存储为JSON。您应该考虑将它简单地存储在一个包含hosttype列的表中。

INSERT INTO table(my_host_column, my_type_column) VALUES
(my_json ->> 'host', my_json ->> 'type');

这使得许多事情变得简单多了(搜索,更新,...)。在您的例子中,Postgres为IP adress列提供inet类型。这样的列可以对主机进行合理性检查,例如(https://www.postgreSQL L.org/docs/current/static/datatype-net-types.html)

您可以在任何时候使用json_build_object('host',my_host_column,'type',my_type_column)(https://www.postgresql.org/docs/current/static/functions-json.html)重新创建JSON

如果您不想用它做任何事情,可以将它存储为text类型(我绝对不建议您这样做,因为您不知道将来会发生什么)。如果要使用Postgres的JSON函数,应该将其存储为JSONJSONB类型(https://www.postgreSQL L.org/docs/current/static/datatype-json.html)。

JSONB的主要开销是节省空间(更多的元数据),但通常操作速度要快得多。

进一步阅读:

 类似资料:
  • 问题内容: 我想将某个结构存储到其中具有JSON字段的数据库中。 该表的架构为: 我在项目中使用sqlx和lib / pq驱动程序,并且不会执行以下操作。相反,它惊慌地说有一个零指针。DB是全局结构 当我从架构和固定装置中删除时,一切运行正常。但是由于某种原因,当包含此字段时,程序会出现紧急情况。关于如何在数据库模式和Go结构中定义字段的任何想法? 问题答案: SQLX有一个类型的,会做你需要什么

  • 告诉我如何在Azure存储帐户中存储PostgreSQL数据库数据。PostgreSQL部署到Azure容器实例。当我重新启动Azure容器实例时,所有数据都会消失。Dockerfile 来自Timescale/Timescaledb:Latest-PG12 az容器创建--resource-group test-env--name test-env--image test-env.azureca

  • 我正在Swagger 2.0的帮助下编写一个API文档。我已经生成了一个API,其中响应在一系列书籍中,运行良好。 大摇大摆 好吧,我只想在中的一个API中发送一本书的详细信息,当我尝试对象不起作用时,我应该采取什么模式类型。 大摇大摆 由于对象不工作,swagger不显示格式。 当前状态: 预期状态:

  • Json后面的Java是什么数据结构?是映射、数组还是列表?请注意,正确大小上没有引号。

  • 问题内容: 这是我的第一篇文章,因此,如果我错过任何内容,请耐心等待:)。 我使用GoJS的go- debug.js库在浏览器上绘制了一些图表,但我在保存选项上遇到了问题。该图产生一个JavaScript对象,您可以通过此命令 myDiagram.model.toJson() 将其转换为Json并将其传递给数据库。我想按保存按钮将使用 Ajax 方法的图表保存到 PhP ,然后保存到 mySQL

  • 问题内容: 我认为这是一个n00b要做的事情。因此,我从未做到过。然后,我看到FriendFeed做到了这一点,实际上使他们的数据库扩展性更好,并减少了延迟。我很好奇我是否应该这样做。而且,如果是这样,正确的方法是什么? 基本上,什么地方是学习如何将MySQL中的所有内容存储为CouchDB类数据库的好地方?将所有内容存储为JSON似乎会变得更加轻松快捷(无需构建,延迟更短)。 此外,是否容易编辑