如何用 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';
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';