Sequelize.js 如何基于sequelize模型的数组类型属性进行选择?
我有一个返回的getAll查询Sequelize.js 如何基于sequelize模型的数组类型属性进行选择?,sequelize.js,Sequelize.js,我有一个返回的getAll查询 [ { id: 1, title: 'Fill me in', assignees: [ 'abc@gmail.com', 'curioscat54@gmail.com', 'davidol@gmail.com' ], is_completed: null, userId: 1, created_by: 'don gee', createdAt: 2020-05-06T10:49
[ { id: 1,
title: 'Fill me in',
assignees:
[ 'abc@gmail.com',
'curioscat54@gmail.com',
'davidol@gmail.com' ],
is_completed: null,
userId: 1,
created_by: 'don gee',
createdAt: 2020-05-06T10:49:32.712Z,
updatedAt: 2020-05-06T10:49:32.712Z },
{ id: 2,
title: 'Fill me in',
assignees:
[ 'qed@gmail.com',
'curioscat54@gmail.com',
'orekbajk@gmail.com' ],
is_completed: null,
userId: 1,
created_by: 'don gee',
createdAt: 2020-05-06T10:52:53.438Z,
updatedAt: 2020-05-06T10:52:53.438Z } ]
Assignees是数组数据类型。如何指定where子句以仅返回被分配者等于特定电子邮件的结果,例如where被分配者=abc@gmail.com”“是吗
因此,它应该只返回被指派者已经abc@gmail.com“在里面
[ { id: 1,
title: 'Fill me in',
assignees:
[ 'abc@gmail.com',
'curioscat54@gmail.com',
'davidol@gmail.com' ],
is_completed: null,
userId: 1,
created_by: 'don gee',
createdAt: 2020-05-06T10:49:32.712Z,
updatedAt: 2020-05-06T10:49:32.712Z },
]
这就是我尝试过的:
async getAll(req, res){
let val;
try{
val = await model.Matter.findAll({
where: {
assignees:{
[sequelize.Op.in]: ['curioscat54@gmail.com']
}
}
});
return res.status(200).json({
val
});
} catch(err){
return res.status(500).json({
err:err.message
})
}
}
但是我得到了这个错误
values.map不是一个函数
我通过将sequelize.Op.in
更改为sequelize.Op.contains
async getAll(req, res){
let val;
try{
val = await model.Matter.findAll({
where: {
assignees:{
[sequelize.Op.contains]: ['curioscat54@gmail.com']
}
}
});
return res.status(200).json({
val
});
} catch(err){
return res.status(500).json({
err:err.message
})
}
}
这回答了你的问题吗@Williamprigollops不,还没有。我已经更新了问题,以反映我的尝试。