Sequelize:将bulkDelete与标准一起使用的示例在哪里?

时间:2018-01-12 19:00:43

标签: node.js sequelize.js

我正在尝试编写一个种子文件down,我想bulkDelete我在up中创建的数据。但我找不到有关如何执行此操作的任何文档。官方文档没有给出一个例子:http://docs.sequelizejs.com/class/lib/query-interface.js~QueryInterface.html#instance-method-bulkDelete

有人可以告诉我如何bulkDeleteFooname等于x或名称等于y的所有行?

  down: (queryInterface, Sequelize) => {
    return queryInterface.bulkDelete('Foo', [what do I put here?], {});
  }

3 个答案:

答案 0 :(得分:14)

我尝试使用@Michael McCabe的建议并继续ERROR: Invalid value [object Object]。一旦我从第二个参数(标识符参数)中删除where,我就能够使它工作:

down: (queryInterface, Sequelize) => {
  const Op = Sequelize.Op
  return queryInterface.bulkDelete('users', {id: {[Op.in]: [2, 3]}}, {})
}

答案 1 :(得分:9)

down: (queryInterface, Sequelize) => {
  const Op = Sequelize.Op; 

  return queryInterface.bulkDelete(
    'Foo',
    {[Sequelize.Op.or]: [{name: x}, {name: y}]}
  );
}

第一个arg是表名,第二个arg是where值,表示要删除的行。

答案 2 :(得分:0)

这里的其他两个答案都不适合我。我在 Sequelize GitHub 问题讨论中偶然发现了以下答案,但效果很好:

https://github.com/sequelize/sequelize/issues/5615#issuecomment-248384147

注意'keyword'是列名,'Flags'是表名:

down: function (queryInterface, Sequelize) {
    return queryInterface.bulkDelete('Flags', {
        keyword: [
            "groupRegistration",
            "memberRegistration",
            "exhibitorRegistration",
            "facilitatorRegistration",
            "volunteerRegistration",
            "workshopSignup"
        ]
    });
}