我想用 sequelize 从数据库中搜索多个元素。我正在使用 in 运算符来使用它。
当我写 $in 时它有效:[1,2]
但是当我写 $in: [req.body.regions]//它不起作用。如何将 body 对象解析为数组。
Phones.findAll({
attributes: ['id', 'enabled', 'color_id', 'sold', 'region_id'
],
where: {
region_id: (req.body.region_id) ? { $in : [req.body.region_id]}: { $ne: null },
color_id: (req.body.color_id) ? { $in : [req.body.color_id]} : { $ne: null },
phone_model_id: (req.body.phone_model_id) ? { $in : [req.body.phone_model_id]} : { $ne: null },
enabled: 1,
},
最佳答案
解决方案 :正如我所看到的请求是逗号分隔的,您可以使用以下一个:
{ $in : req.body.region_id.split(",") }
做 的好方法:它应该是
regions[0], regions[1]
或者只是在您的 postman api 中重复相同的名称 regions[]
,然后在您的代码中使用它,例如:{ $in : req.body.regions }
第一种方法很容易在 postman 中测试,但对于开发人员来说,第二种方法更优雅,更容易创建或维护数组,而不是逗号分隔的字符串
关于node.js - 如何在nodejs中使用sequelize在where子句中使用request.body数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52052527/