有什么方法可以对 Postgres 中某个表中的 jsonb 字段进行查询,这些查询基本上与 Mongodb 查询运算符(在此处列出 https://docs.mongodb.org/manual/reference/operator/query-comparison/ )相同
例如,我希望能够在 postgres 表中存储一些 json 对象:
{"power": 200},
{"power": 400},
{"power": 0},
{"power": 146297},
如果我做当前的方法
SELECT * FROM mytable where json_field ->> 'power' < '2';
我得到了功率 0 和功率 146297 的行...
某处是否有一些文档指定如何操作
gt, gte, lt, lte, eq, 不等于,在数组中,不在数组中
最佳答案
您需要转换 ->>
字符串结果值:
WITH mytable(json_field) AS ( VALUES
('{"power": 200}'::JSONB),
('{"power": 400}'::JSONB),
('{"power": 0}'::JSONB),
('{"power": 146297}'::JSONB)
)
SELECT * FROM mytable where (json_field->>'power')::INTEGER < 2;
结果是:
json_field
--------------
{"power": 0}
(1 row)
关于json - Postgres 9.4 jsonb 查询基本运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35002524/