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'})
答案 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';