sql - Sequelize.js - 在 'findAll' 之后删除实例数组

标签 sql node.js mariadb sequelize.js

在 Sequelize.js 中,我有查询在某些条件下查找所有项目。在获得模型实例数组后,我想删除这些实例:

let toBeDeleted = await Request.findAll({
  where: {
    // Some where statements...
  }
});

const deleted = await toBeDeleted.destroyAll(); // <= Need something like this

// Some actions with array `toBeDeleted` (For example, Delete file associated with each row)
for (let i in toBeDeleted)
            await fs.removeSync(path.join(global.config.paths.screenshots, toBeDeleted[i].image));

我需要先删除我发现的内容,然后删除与行相关联的文件。

最佳答案

更新

使用 where 一次,然后使用 findAll 数据销毁。用原始答案的删除部分替换下面的代码。

await Request.transaction(async function (t) {
      for ( var i = 0; i < toBeDeleted.length; i++){
          await toBeDeleted[i].destroy({ transaction: t });
      }
});

像这样 ?
let toBeDeleted = await Request.findAll({
  where: {
    // Some where statements...
  }
});

const deleted = await Request.destroy({
   where: {
    // the same statements you used to find toBeDeleted
  }
});

请记住,如果您有 paranoid: true ,那么记录将不会被删除并且只有 被删除在 列将有一个时间字符串,如果您想强制删除您需要使用的记录 force:true

关于sql - Sequelize.js - 在 'findAll' 之后删除实例数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57394186/

相关文章:

php - 将工作日添加到 SQL 查询

python - PYODBC 中的函数序列错误

javascript - CSS 样式表未正确连接到 ejs 文件

node.js - create_with_paypal Node sdk PayPal中的发票号码

mysql - 将列排序规则从 utf8mb4_general_ci 更改为 utf8mb4_bin 会损坏表

c++ - 尝试连接到 google-cloud 中的 MariaDB 数据库但无法连接不显示任何错误报告

sql - 在不重新架构的情况下,您将如何跟踪所有 CRUD 操作的历史记录?

node.js - 在单独的 ec2 实例上连接到 mongodb

mysql - 删除时无法使用 "set default"添加外键

SQL-Server常见问题-检索刚刚插入的ID