何时使用模式实例方法和静态

When to use schema instance methods and statics

我了解 Methods 向文档添加实例方法,而 Statics 向模型本身添加静态 "class" 方法。但是,我不明白什么时候使用实例,什么时候使用静态class。

什么情况下应该创建实例并附加方法,什么情况下应该将静态函数附加到模型本身?

需要使用集合的文档(猫鼬实例对象)的场景将需要实例方法。最好的例子可能是比较密码,或验证其他密钥。在您首先获取数据然后需要执行您的方法的情况下,也会使用实例方法。

另一方面,静态方法 用于基于可用模型方法实现某些功能的情况。使用它的最佳示例可能是,假设您有一个具有 name 字段的架构,并且您在该字段上进行了很多查询。在这种情况下,您可以在 mongoose find() 方法之上创建一个静态方法,例如 findByName()(或其他方法),它将执行此特定操作工作。

希望这对您有所帮助 :)