2016-02-12 3 views
0

Я использую Sequelize с PostgreSQL.

Мне нужно построить запрос уничтожения, который может использовать оператор $like по типу данных JSON.

Например, давайте рассмотрим это определение модели:

var Sequelize = require('sequelize'); 
var sequelize = new Sequelize('database', 'username', 'password'); 

var Project = sequelize.define('project', { 
    name: Sequelize.STRING, 
    details: { 
    type: Sequelize.JSON, 
    defaultValue: {} 
    }, 
}); 

Теперь, я хотел бы быть в состоянии выполнить запрос, чтобы уничтожить все элементы проекта, которые не имеют каких-либо деталей:

Project.destroy({ 
    where: { 
    details: { 
     $like: '{}' 
    } 
    } 
}) 

Но я получаю эту ошибку:

[SequelizeDatabaseError: operator does not exist: json ~~ unknown] 

Итак, есть ли способ сделать это и как?

Спасибо!

ответ

0

Попробуйте использовать:

$like: { $any: ['cat', 'hat']} // LIKE ANY ARRAY['cat', 'hat'] - also works for iLike and notLike 

От docs.

Смежные вопросы