如何用JSON创建postgres表?

时间:2016-02-25 10:22:41

标签: json mongodb postgresql jsonb postgresql-9.5

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

的一步一步的简单例子

1)如何创建包含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的leas,如何删除对象,就像mongodb collection.remove({id: 'objectId'})

一样

1 个答案:

答案 0 :(得分:2)

在一个答案中涵盖了太大的话题。所以只需要一些例子。有关更多信息,请参阅文档:

创建表格:

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';