繁体   English   中英

SQLALchemy:查询 Postgres JSONB 列的单个键或键子集

[英]SQLALchemy: Query a single key or subset of keys of a Postgres JSONB column

我有一个包含 JSONB 列的 Postgres 表。 如何在 SQLAlchemy 中不立即加载整列的情况下查询此列的数据?

假设 JSONB 列myjsonb包含{'a': 1, 'b': 2, 'c': 3, ... 'z': 26} 我只想要'a'的值,而不是所有 26 个值。 我如何指定一个查询来做到这一点?

例如,

query = session.query(MyTable).options(defer('myjsonb')).join(MyTable.myjsonb['a'])

不起作用。

知道我如何只能检索'a'吗? 如果键'a'不存在会发生什么? 我怎样才能加载多个键,比如'b'到 ' f' ,但不是一次加载所有键? 谢谢!

这实际上非常简单,您只需查询您感兴趣的键即可:

query = session.query(MyTable.myjsonb['a'])

如果你想要来自 json 对象的多个键,比如说ac ,你可以

query = session.query(MyTable.myjsonb['a'], MyTable.myjsonb['c'])

如果任何键不存在,它只会为该行返回None

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM