Sequelize (psql) как найти строковое значение из Sequelize.ARRAY (Sequelize.STRING) - PullRequest
0 голосов
/ 10 января 2020

Я хочу получить все id из таблицы автомобилей, когда пользователь ищет один или несколько тегов, связанных с отдельным объектом автомобиля.

import Sequelize from 'sequelize';

const cars = db.define('cars', {
  id: {
    allowNull: false,
    autoIncrement: true,
    type: Sequelize.INTEGER,
  },
  tags: {
    type: Sequelize.ARRAY(Sequelize.STRING(50)),
  }
});

export default cars;

, учитывая объект как показано ниже

{
   id: 'car001',
   tags: ['ferrari', 'red', '2018']
},
{
   id: 'car002',
   tags: ['ford', 'black']
},
{
   id: 'car003',
   tags: ['lamborghini', 'black', '2018', 'SC18']
}

И я хочу получить все идентификаторы автомобилей, где теги имеют значение «черный».

findAll(
  {
    where: {
      [Op.or]: [
        {
          tags: {
            [Op.iLike]: { [Op.any]: [%2018%, '%blac%'] },
          }
        }
      ]
    }
  }
);
...