我在postgres上使用sequelize, 有没有办法执行"不包含"声明与续集?
类似的东西:
[Op.not]: {
[Op.contains]: ['value1','value2']
}
产生:
SELECT * FROM Table WHERE NOT ArrayColumn @>ARRAY['value1','value2']::VARCHAR(255)[]
答案 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