{
"elements": {
"array": [
{
"childElements": {
"array": [
{
"nameStId": "8818"
}
]
}
}
]
}
我想要 nameStId 值上的 PostgresSQL GIN 索引 需要建议如何实现这一目标
那我也想查询
要索引 JSONB 数据,必须使用 jsonb_path_ops 运算符类。 GIN索引可以如下创建:
CREATE INDEX idx_nameStId ON your_table_name USING GIN (your_jsonb_column -> 'elements' -> 'array' -> 0 -> 'childElements' -> 'array' -> 0 -> 'nameStId' jsonb_path_ops);
在 WHERE 子句中使用 GIN 索引,如下所示搜索 nameStId 等于 8818 的元素:
SELECT *
FROM your_table_name
WHERE your_jsonb_column @> '{"elements": {"array": [{"childElements": {"array": [{"nameStId": "8818"}]}}]}}';
此查询使用@>运算符进行JSONB包含查询,并且您建立的GIN索引应该会增强查询的性能。
希望它有效:)