我想用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,
},
答案 0 :(得分:1)
解决方案:如我所见,请求是逗号分隔的,可以使用以下命令:
{ $in : req.body.region_id.split(",") }
好方法:它应该是regions[0], regions[1]
或只是在邮递员api中重复相同的名字regions[]
,然后在代码中像这样使用它:
{ $in : req.body.regions }
第一种方法很容易在邮递员中进行测试,但是对于开发人员而言,第二种方法更优雅,更易于创建或维护数组,而不是用逗号分隔的字符串
答案 1 :(得分:0)
如果
req.body.regions
是使用此代码的数组:
$in: req.body.regions