簡體   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