简体   繁体   English

Sqlalchemy 使用 arrays 搜索 JSONB 列且没有键

[英]Sqlalchemy search JSONB column with arrays and no keys

I'm trying to filter a JSONB column in flask-sqlalchemy and am having trouble:我正在尝试过滤 flask-sqlalchemy 中的 JSONB 列,但遇到了麻烦:

class Journal(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    synonyms = db.Column(JSONB)

j = Journal(synonyms=['red', 'blue'])
db.session.add(j)
db.session.commit()

records = Journal.query.filter(Journal.synonyms.contains('red')).all()

I get the error: sqlalchemy.exc.InternalError: (psycopg2.errors.InFailedSqlTransaction) current transaction is aborted, commands ignored until end of transaction block我收到错误: sqlalchemy.exc.InternalError: (psycopg2.errors.InFailedSqlTransaction) current transaction is aborted, commands ignored until end of transaction block

Any idea what I am doing wrong?知道我做错了什么吗?

I figured out the correct query for this.我找到了正确的查询。 It is:这是:

import json
records = Journal.query.filter(Journal.synonyms.contains(json.dumps('red'))).all()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM