如何用 JSON 创建 postgres table?

How to create postgres table with JSON?

PostgreSQL 的最新版本具有像面向文档的数据库(例如 MongoDB)一样工作的能力。有一些有希望的基准表明 postgres 比 mongo 快 x 倍。有人可以给我建议如何像 MongoDB 一样使用 postgres 吗?我正在寻找有关

的逐步简单示例

1) 如何创建最简单的 table 包含 JSON/JSONB 对象,例如 mongodb

中的文档

2) 如何至少通过 id 对其进行搜索,就像我在 mongodb 中用 collection.find({id: 'objectId'}) 做的那样

3) 如何创建新对象或覆盖现有对象至少 id,就像我在 mongodb 中用

做的那样
 collection.update(
     {id: objectId},
     {$set: someSetObject, $unset: someUnsetObject}
     {upsert: true, w: 1}
  )

4) 如何通过 id 删除至少存在的对象,就像我在 mongodb 中使用 collection.remove({id: 'objectId'})

所做的那样

主题太大,一个答案无法涵盖。所以这里只是按要求提供了一些示例。有关详细信息,请参阅文档:

创建 table:

create table test(
    id serial primary key,
    data jsonb);

按 ID 搜索:

select * from test where id = 1;

按 json 值搜索:

select * from test where data->>'a' = '1';

插入和更新数据:

insert into test(id, data) values (1, '{"a": 1, "b": 2, "c": 3}');
update test set data = data - 'a' || '{"c": 5}' where id = 1;

按id删除数据:

delete from test where id = 1;

按json值删除数据:

delete from test where data->>'b' = '2';