Yo *_*ita 5 postgresql sequelize.js
我希望使用Sequelize从postgres数据库中提取项目,但只返回id与给定数组中的任何项目不相等的项目.
在Sequelize文档,也有运营商$ne的not equal和$in用于返回与给定数组匹配值的属性项目,但它并不像有什么东西,结合这两种操作.
例如,如果我在数据库中包含id的项目[1, 2, 3, 4, 5, 6],并且我想通过与另一个数组(即[2,3,4])进行比较来过滤这些项目,那么它将返回项目[1, 5, 6].在我的例子中,我也随机化了退货订单和限价,但这可以忽略不计.
function quizQuestions(req, res) {
const query = {
limit: 10,
order: [ [sequelize.fn('RANDOM')] ],
where: {
id: { $ne: [1, 2, 3] } // This does not work
}
};
Question.findAll(query)
.then(results => res.status(200).json(map(results, r => r.dataValues)))
.catch(err => res.status(500).json(err));
}
Run Code Online (Sandbox Code Playgroud)
编辑:使用@piotrbienias回答,我的查询如下所示:
const query = {
limit: 10,
order: [ [sequelize.fn('RANDOM')] ],
where: {
id: { $notIn: [1, 2, 3] }
}
};
Run Code Online (Sandbox Code Playgroud)
小智 12
使用
const Op = Sequelize.Op
where: {
id: {[Op.notIn]:[1, 2, 3]}
}
Run Code Online (Sandbox Code Playgroud)
见操作员:
Sequelize公开了可用于创建更复杂比较的符号运算符
pio*_*ias 11
存在$notIn,你一定错过了它.具有$notIn生成的示例性查询
SELECT "id", "name"
FROM "categories" AS "Category"
WHERE "Category"."id" NOT IN (1, 2);
Run Code Online (Sandbox Code Playgroud)
编辑
您引用的文档是2.0Sequelize的版本,您应该更新到3.0.
| 归档时间: |
|
| 查看次数: |
15202 次 |
| 最近记录: |