如何使用 0p.in 来搜索对象数组?

how to use 0p.in to search the array of objects?

为了更好地解释我需要什么,我从我拥有的开始。我有一个带有简单主键的 table - 当我删除记录时,我将需要删除的 ID 数组传递给该函数。随后,我使用这个 sequelize 查询来确定需要删除哪些记录

const where: any = { id: { [Op.in]: deleteIds } };

发生了什么变化?我需要为 table 使用复合主键,所以我不再将字符串数组传递给 table,而是将具有多个属性的对象数组传递给

]
[ {
    prop1: value1,
    prop2: value2 
}, {
    prop1: value2,
    prop2: value3 
} ]

并且只删除那些符合这两个属性的记录。有人可以建议怎么做吗?我在想这样的事情,但它不起作用。我觉得我需要确保不仅(要删除的对象的)两个值都需要出现在数组中,而且都需要与单个对象相关。谢谢

{
 $and: [
   { column1: { [Op.in]: deleteIds.prop1 } },
   { column2: { [Op.in]: deleteIds.prop2 } },
 ]
}

您只需要结合 Op.and(由带有 props 的对象隐式定义)和 Op.or 使其工作:

{
 [Op.or]: deleteIds.map(x => ({
   column1: x.prop1,
   column2: x.prop2,
 }))
}