![](/img/trans.png)
[英]SqlAlchemy + Postgres - query with @> ANY(ARRAY['["...]']::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 对象的多个键,比如说a
和c
,你可以
query = session.query(MyTable.myjsonb['a'], MyTable.myjsonb['c'])
如果任何键不存在,它只会为该行返回None
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.