一: 对象扩展(Schema.methods)
对象扩展则是一个具体事物使用的方法
对于对象扩展:
比如我想根据具体的一本书,比如《程序员的自我修养》查找和和它类似的书,则定义实例方法 doc.isSimilar(xxx)。实例方法嘛,调用者是具体的实例
注: 对于对象扩展是一个对象的调用方法可以通过mongodb查出的对象调用她的方法,也可以用生成一个实例对象调用它的方法
二: 类上扩展(Schema.static)
类上扩展给我感觉就是大规模时使用的方法
对于类上扩展:
我想查找所有的故事书(而且以后经常查找),但不想每次都用原生方法Book.find({type:story}) ,于是我就可以定义一个静态方法:以后就可以这么查 Book.isStory() 就ok了,这个方法比较直接,直接用就行。
三: 虚拟属性(Virtuals)
Virtuals属性可以从Document中获取并设置 但它并不存在mongoDB中