Express Sequelize-通过匹配所有标记筛选FindAll
对上述端点的Get请求应仅返回包含所有提供标记的记录(Express Sequelize-通过匹配所有标记筛选FindAll,express,sequelize.js,Express,Sequelize.js,对上述端点的Get请求应仅返回包含所有提供标记的记录(foo,bar) 我当前的尝试是返回与任何给定标记匹配的任何记录 /assets/?tags[]=foo&tags[]=bar 如何修改过滤器以返回所有标记匹配的记录?如果您的DBMS支持ALL操作符,则可以尝试Op.ALL操作符而不是Op.in 另一种解决方案是结合这些条件 const { tags } = req.query; res.send( await Asset.findAll({ wher
foo
,bar
)
我当前的尝试是返回与任何给定标记匹配的任何记录
/assets/?tags[]=foo&tags[]=bar
如何修改过滤器以返回所有标记匹配的记录?如果您的DBMS支持
ALL
操作符,则可以尝试Op.ALL
操作符而不是Op.in
另一种解决方案是结合这些条件
const { tags } = req.query;
res.send(
await Asset.findAll({
where: whereOptions,
include: [
{ model: AssetMime },
{
model: Tag,
as: 'tags',
where: {
title: {
[Op.in]: tags,
},
},
},
],
})
);
如果DBMS支持
all
运算符,则可以尝试使用Op.all
运算符而不是Op.in
另一种解决方案是结合这些条件
const { tags } = req.query;
res.send(
await Asset.findAll({
where: whereOptions,
include: [
{ model: AssetMime },
{
model: Tag,
as: 'tags',
where: {
title: {
[Op.in]: tags,
},
},
},
],
})
);
我确实试过了,但收到了SQL错误,我猜所有不支持的添加替代解决方案您能扩展一下您的答案吗?我刚刚阅读了Op.and,不知道如何在我的案例中实现让我把它转换成Typescript,看看它是什么意思?如果您有几个值,会发生什么情况?我确实尝试过,但收到了SQL错误,我猜所有不支持的都是添加的替代解决方案。您能稍微扩展一下您的答案吗?我刚刚阅读了Op.and,不知道如何在我的案例中实现让我把它转换成Typescript,看看它是什么意思?如果有几个值,会发生什么?