node.js - 将 json 对象存储到 postgresql 中的数据类型是什么?
问题描述
我对postgresql很陌生。
我想将下面的 json 对象存储到 postgresql 数据库中。
{
"host": "xxx.xxx.xx.xx"
"type": "OS"
}
你能告诉我我应该在postgresql中使用什么数据类型吗?提前致谢。
解决方案
如果您的数据始终包含相同的简单结构,我认为没有任何理由将它们存储为 JSON。您应该考虑将其简单地存储在具有列host
和type
.
INSERT INTO table(my_host_column, my_type_column) VALUES
(my_json ->> 'host', my_json ->> 'type');
这使许多事情变得更加简单(搜索、更新……)。在您的情况下,Postgres 提供inet
IP 地址列的类型。这样的专栏可以为你做合理性检查host
,例如(https://www.postgresql.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
但是,如果您仍想按原样存储 JSON:
如果您不想对它做任何事情,请将其存储为text
类型(我绝对不推荐,因为您不知道未来会发生什么)。如果您想使用 Postgres 的 JSON 函数,您应该将其存储为json
或jsonb
键入 ( https://www.postgresql.org/docs/current/static/datatype-json.html )。
jsonb
主要是节省空间(更多元数据)的开销,但通常在操作上要快得多。
进一步阅读:
推荐阅读
- node.js - Discord.js 画布合并两个图像
- c++ - Xcode 在我添加库时出错:dyld: Library not loaded
- javascript - 每 24 小时生成随机字符串然后刷新 JavaScript?
- java - Java中的文字和变量如何进行数字提升和降级?
- php - 如何在 CodeIgniter 4 的 Autoload 文件中加载模型
- django - 在 django 中从私有 s3 提供静态文件
- python-3.x - discord.py embed.fields.2.value:此字段为必填项
- xaml - 在 CollectionView 的中心显示元素
- python - 4 个最后一个字符被截断的列
- powershell - 通过 Powershell 监控内存和 CPU