下午好,
我是一名初级开发人员,一直在尝试使用Typescript学习Sequelize,但遇到了困难。
我创建了一个简单的查询来基于值进行搜索,但是无法传递值的数组而不会破坏查询。
const findNameTsxData = (limit: number, Name: string): Promise<FinanceStuffs[]> => {
// const { in: opIn, or } = Sequelize.Op;
return db.FinanceStuffs.findAll({
where: { Name },
limit
});
};
现在,如果我通过邮递员的查询为
Name: "Joe"
Limit: 10,
它返回了Joe的10笔交易,但我希望能够在其中传递多个名称
查询,例如:
Name: ["Joe", "Alex", "Jacob"]
Limit: 30
我相信答案会以某种方式映射数组,或使用Sequelize.Op,但尝试时似乎出现多个打字稿错误。
如果您能向我解释我在做什么错,那将是一次学习的经历,将不胜感激。
谢谢!
最佳答案
您必须使用续集中的or
关键字,例如提及in the documentation
例:
const findNameTsxData = (limit: number, Names: string[]): Promise<FinanceStuffs[]> => {
const Op = Sequelize.Op;
return db.FinanceStuffs.findAll({
where: { Name: { [Op.or]: Names } },
limit
});
};
如果愿意,还可以使用
in
const findNameTsxData = (limit: number, Names: string[]): Promise<FinanceStuffs[]> => {
const Op = Sequelize.Op;
return db.FinanceStuffs.findAll({
where: { Name: { [Op.in]: Names } },
limit
});
};