我正在试验postgres的jsonb
种专栏类型,到目前为止还不错.
select count(*) from jsonbtest WHERE attributes @> '{"City":"Mesa"}';
我该如何扭转这种局面?是否有不同的运算符,或者只是用作
select count(*) from jsonbtest WHERE NOT attributes @> '{"City":"Mesa"}';
我正在试验postgres的jsonb
种专栏类型,到目前为止还不错.
select count(*) from jsonbtest WHERE attributes @> '{"City":"Mesa"}';
我该如何扭转这种局面?是否有不同的运算符,或者只是用作
select count(*) from jsonbtest WHERE NOT attributes @> '{"City":"Mesa"}';
两种方式,您可以测试任何json(b)值
->>
运算符将值提取为文本.但是,如果只使用值测试,则此操作会变慢@>
运算符测试任何json(b)是否包含任何json(b).这是一个快速但未经测试的选项. 简单快捷的方法:
NOT (attribute @> '{"City":"Mesa"}'::jsonb)
我将attribute->>'City' <> 'Mesa'
改为NOT (attribute @> '{"City":"Mesa"}'::jsonb)
,我的~2.000.000行查询结果时间从45秒改为25秒.