下午好,
我是一名初级开发人员,一直在尝试使用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
  });
};

07-24 09:47
查看更多