具有预选过滤器的猫鼬插件

时间:2017-10-08 10:15:56

标签: mongoose mongoose-plugins

是否可以创建一个mongoose插件,在每个查询中它都会添加标准过滤器?

我希望每次创建一个User.find()或User.findOne()或User.update()或User.delete()等...每次包含此过滤器{activated:true}

1 个答案:

答案 0 :(得分:0)

我们在团队中执行此操作的方式是,我们有UsersManager类来实现findfineOne等方法,这些方法会调用mongoose'添加基础过滤器时的方法。例如:

class UsersManager {
    find(filter) {
        return userModel.find()
            .where('activated', true)
            .where(filter)
            .exec();
    }
}

其他任何课程都不会直接致电userModel.find

如果需要在每个方法上添加相同的过滤器,则应考虑使用实用程序方法。