我如何执行不包含sequelize中的查询

时间:2018-03-15 10:19:24

标签: postgresql sequelize.js

我在postgres上使用sequelize, 有没有办法执行"不包含"声明与续集?

类似的东西:

[Op.not]: {
    [Op.contains]: ['value1','value2']
} 

产生:

SELECT * FROM Table WHERE NOT ArrayColumn @>ARRAY['value1','value2']::VARCHAR(255)[]

2 个答案:

答案 0 :(得分:0)

您可以使用

where: {
    $not: { $contains: ['value1','value2'] },
}

答案 1 :(得分:0)

必须将同样的问题用于原始SQL

where['<COL_NAME>'][Op.and] = [Sequelize.literal(`'${JS_VARIABLE_ARRAY}' != all (<COL_NAME>)`)];

我已经构建了此辅助函数来构造我的where查询

const buildWhereQuery = (query, columns) => {
  const parsedObject = {};
  Object.keys(query).forEach((attr) => {
    if (columns.indexOf(attr) !== -1 &&  (query[attr] !== null || query[attr] !== undefined)) {
      parsedObject[attr] = query[attr];
    }
  });
  return parsedObject;
};


const where = buildWhereQuery(query, columnsToQueryAgainst)

希望有帮助。 使用: 节点:v10.14.2 sequelize@4.38.0 sequelize-cli@4.0.0