【问题标题】:Find ONLY soft deleted rows with Sequelize使用 Sequelize 仅查找软删除的行
【发布时间】:2023-02-01 18:04:14
【问题描述】:

我在 sequelize 和 sqlite 上运行一个数据库,我使用软删除来基本上归档数据。

我知道使用 .findAll(paranoid: false) 我可以找到所有行,包括软删除的行。但是我只想找到软删除的。

有什么办法可以做到这一点?或者是否有一种方法可以对两个数据结果进行“集合操作”,比如在另一个中找到一个的相对补码?

【问题讨论】:

  • 删除数据时,软删除会使用日期时间值更新 deleted_at(您的列名可能不同)。因此,您可以使用 where 选项查询,deleted_at 不为空。
  • 非常感谢你。这就是我需要的。在我的例子中,它看起来像这样:model.findAll({ where: {deletedAt: {[Op.not]: null}}, paranoid: false }); 也许你想发布这个作为问题的答案,所以我可以接受你的答案。

标签: sqlite sequelize.js


【解决方案1】:

为此,您可以将以下条件添加到where。

deletedAt: { [Op.not]: null }

例如像这样:

const projects = await db.Project.findAndCountAll({
        paranoid: false,
        order: [['createdAt', 'DESC']],
        where: { employer_id: null, deletedAt: { [Op.not]: null } },
        limit: parseInt(size),
        offset: (page - 1) * parseInt(size),
});
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    相关资源
    最近更新 更多