我有一个JSONB字段,它有时有嵌套的键。示例:
{"nested_field": {"another URL": "foo", "a simple text": "text"},
"first_metadata": "plain string",
"another_metadata": "foobar"}
如果我做了
.filter(TestMetadata.metadata_item.has_key(nested_field))
我有这张唱片。
如何搜索嵌套键的存在性?("a simple text"
)
Tags:
使用SQLAlchemy,以下内容应适用于测试字符串:
根据SQLAlchemy documentation of ^{} (搜索路径索引操作示例):
它应该生成下面的
SQL
:使用^{} operator提取嵌套的JSON对象后,此查询将测试是否存在具有^{} operator的嵌套字段:
请注意,纯GIN索引不支持此查询。你需要在
metadata_item->'nested_field'
上加一个expression index来加快速度。对于类似的情况有一个example in the manual。
相关问题 更多 >
编程相关推荐