扩展静态方法
- 定义Schema
let HeroSchema = new mongoose.Schema({ // 此处为表字段内容 });
- 定义静态方法
// 自定义查询方法 HeroSchema.statics.findByType = function (type, callback) { // this关键字可以获取当前model this.find({ type: type }, (err, docs) => { callback(err, docs); }) } let HeroModel = mongoose.model('Hero', UserSchema, 'hero');
- 使用自定义静态方法
HeroModel.findByType('法师',(err, docs) => {});
扩展实例方法
- 定义实例方法
// 自定义查询方法 HeroSchema.methods.print = function (type, callback) { // this关键字可以获取当前实例对象,注意此处不要使用箭头函数 console.log(this) } let HeroModel = mongoose.model('Hero', UserSchema, 'hero');
- 使用实例方法
let hero = new HeroModel({ name:'孙尚香', life:5400, type:'射手' }); hero.print(); // {name:"孙尚香",left:5400,type:"射手"}