我想知道如何完全this,除了SQLAlchemy而不是纯SQL语法。
所以只是从这个问题重申,你有一个包含jsonb类型列的表,让我们称之为data
。在这种情况下,data
将始终是一个对象数组。我想查询data
包含一个键设置为特定值的对象的行。
我在这里链接的答案给出了如何用SQL语言做的很好的解释,我如何在SQLAlchemy中做同样的事情?
答案 0 :(得分:0)
问题是jsonb键仍然是jsonb对象。这可以通过使用astext
语法来解决。
因此,如果您在jsonb
表中调用data
列MyObject
:
object = session.query(
MyObject
).\
filter(MyObject.data['key'].astext=='required_key').\
all()