mongoose中实例方法和静态方法分别在哪些业务上使用?
// 添加 mongoose 实例方法
mongooseSchema.methods.findbyusername = function(username, callback) {
return this.model('mongoose').find({username: username}, callback);
}
// 添加 mongoose 静态方法,静态方法在Model层就能使用
mongooseSchema.statics.findbytitle = function(title, callback) {
return this.model('mongoose').find({title: title}, callback);
}
上面两个感觉实例和静态都可以,
那么 mongoose中实例方法和静态方法分别在哪些业务上使用?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我就发表下我的理解哈:
静态方法给我感觉就是大规模时使用的方法
实例方法则是一个具体事物使用的方法
举个栗子:
对于静态方法:
我想查找所有的故事书(而且以后经常查找),但不想每次都用原生方法
Book.find({category:story})
,写起来好麻烦,于是我就可以定义一个静态方法:以后就可以这么查
Book.isStory()
就ok了对于实例方法:
比如我想根据具体的一本书,比如《不平凡的世界》查找和和它类似的书,则定义实例方法
doc.isSimilar(xxx)
。实例方法嘛,调用者是具体的实例,此处肯定不能用静态方法吧。
以前仅供参考,希望有帮助,如果没帮助,可以看看java相关的,因为那里面也有静态方法实例方法,可以借鉴下思想