2016-11-30 2 views
0

У меня есть модель, которая выглядит как этотВыполнение спичку PostgreSQL с помощью OR на поле JSON

class Message(db.Model): 

    content = db.Column(JSON) 

Я хочу, чтобы выполнить поиск в этой области, которые содержат несколько полей JSON

обычно, когда я что-то вроде это работает

Message.query.filter(Message.content['summary'].cast(Unicode).match(search_term)) 

Теперь я хочу использовать или другое поле, если описание поля не существует или пусто

с использованием или без литья не может с программированием ошибки типов должны быть логическим

Message.query.filter(Message.content['summary'] | Message.content['text+video'].match(search_term)) 

ответ

1

Благодаря Elmer на IRC канале #sqlalchemy, логика не верна, то, как я должен выполняюсь поиск

Message.query.filter(Message.content['summary'].cast(Unicode).match(search_term) | Message.content['text'].cast(Unicode).match(search_term)) 

Люди, которые заинтересованы также должны следовать этой ссылке, где есть связанный с этим вопрос с лучшим ответом SQLAlchemy Text Matching data inside JSON field with UTF-8