Как сделать выборку по булевому значениею в JSONB с помощью SQLAlchemy
У модели User есть поле attributes, класса JSONB:
class User(Model):
# Тут всякие разные поля
attributes = Column('attributes', postgresql.JSONB)
my_prop = JSONBColumnProxy(attributes, 'my_prop', default=False)
Мне нужно выбрать все id юзеров, у которых my_prop == True. Пробую сделать это так, получаю пустой список:
my_props_ids = self._db_session.query(User.id) \
.filter(User.attributes['my_prop'] == cast('true', postgresql.JSONB)) \
.all()
Как это правильно сделать?
UPD. получилось сделать вот так, но я не уверен, что это хорошее решение. Если есть способы получше, подскажите, пожалуйста.
my_props_ids = self._db_session.query(User.id) \
.filter(User.attributes['my_prop'].astext == 'true') \
.all()