[英]How to use and operator in where clause with sequelize in nodejs
[英]How to use request.body array in where clause with sequelize in nodejs
我想用sequelize从数据库中搜索多个元素。 我在操作符中使用它。
当我在$ in中写入$时,它起作用:[1,2]
但是当我在$ in:[req.body.regions]中写//时不起作用。 如何将正文对象解析为数组。
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(",") }
好的方法 :应该是postman api中的regions[0], regions[1]
或只是重复使用相同名称的regions[]
,然后在代码中像这样使用它:
{ $in : req.body.regions }
第一种方法很容易在邮递员中测试,但对于开发人员来说,第二种方法则更优雅,更易于创建或维护数组,而不是用逗号分隔的字符串
如果
req.body.regions
是一个数组,使用此代码:
$in: req.body.regions
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.