【发布时间】:2021-08-10 09:37:10
【问题描述】:
假设一个 Postgres 用户表包含一个 NestedMutableJson 类型的属性。
first_name character varying (120)
last_name character varying (120
country_info NestedMutableJson
...
from sqlalchemy_json import NestedMutableJson
country_info = db.Column(NestedMutableJson, nullable=True)
country_info = {"name": "UK", "code": "11"}
如何根据 country_info 键查询用户表。
POSTGRES 查询
SELECT * FROM user WHERE country_info ->> 'name' = 'UK'
是否有任何 SqlAlchemy 方式给出相同的查询结果?
我尝试了几种方法,例如:
方式一:
User.query.filter(User.country_info['name'].astext == 'UK').all()
错误:
Operator 'getitem' is not supported on this expression
方式二:
User.query.filter(User.country_info.op('->>')('name') == 'UK').all()
问题:
Always getting an empty response
我想知道是不是列定义db.Column(NestedMutableJson, nullable=True)引起的问题
我避免使用 db.session.execute("SELECT * FROM user WHERE country_info ->> 'name' = 'UK'").fetchall()。寻找别的东西
【问题讨论】:
标签: database postgresql sqlalchemy