如何为某些模型的所有查询添加默认的 where 子句?

How can I add a default where clause to all queries for certain models?

有没有办法在 Objection 的某些模型中默认添加某个 where 子句?

上下文

我的一些异议模型使用“软删除”——而不是实际从数据库中删除它们,它们的 deleted_at 列标有时间戳。

默认情况下,我想确保 where deleted_at is null 默认包含在我的所有查询中,这样我就不必记得手动添加它。

有没有办法在 Objective 或 Knex 中执行此操作?

您可以覆盖模型中的 query 方法:

class SoftDeleteModel extends Model {
    static query(...args) {
        return super.query(...args).where('deleted_at', null)
    }
}

super.query指的是“原创”/parent的异议query方法。