SQLAlchemy根据JSONB中的嵌套键进行过滤
发布时间:2020-12-13 16:13:03 所属栏目:百科 来源:网络整理
导读:我有一个 JSONB字段,有时有嵌套键.例: {“nested_field”:{“另一个URL”:“foo”,“一个简单的文本”:“text”},“first_metadata”:“plain string”,“another_metadata”:“foobar”} 如果我做 .filter(TestMetadata.metadata_item.has_key(nested
我有一个
JSONB字段,有时有嵌套键.例:
{“nested_field”:{“另一个URL”:“foo”,“一个简单的文本”:“text”},“first_metadata”:“plain string”,“another_metadata”:“foobar”} 如果我做 如何搜索嵌套密钥的存在? (“一个简单的文字”)
使用SQLAlchemy,以下内容适用于您的测试字符串:
class TestMetadata(Base): id = Column(Integer,primary_key=True) name = Column(String) metadata_item = Column(JSONB) 按照SQLAlchemy documentation of expr = TestMetadata.metadata_item[("nested_field","a simple text")] q = (session.query(TestMetadata.id,expr.label("deep_value")) .filter(expr != None) .all()) 哪个应生成以下SQL: SELECT testmetadata.id AS testmetadata_id,testmetadata.metadata_item #> %(metadata_item_1)s AS deep_value FROM testmetadata WHERE (testmetadata.metadata_item #> %(metadata_item_1)s) IS NOT NULL -- @params: {'metadata_item_1': u'{nested_field,a simple text}'} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |