mongoose——扩展内置方法

扩展静态方法

  1. 定义Schema
    let HeroSchema = new mongoose.Schema({
        // 此处为表字段内容
    });
    
  2. 定义静态方法
    // 自定义查询方法
    HeroSchema.statics.findByType = function (type, callback) {
      // this关键字可以获取当前model
      this.find({ type: type }, (err, docs) => {
        callback(err, docs);
      })
    }
    let HeroModel = mongoose.model('Hero', UserSchema, 'hero');
    
  3. 使用自定义静态方法
    HeroModel.findByType('法师',(err, docs) => {});
    

扩展实例方法

  1. 定义实例方法
    // 自定义查询方法
    HeroSchema.methods.print = function (type, callback) {
      // this关键字可以获取当前实例对象,注意此处不要使用箭头函数
      console.log(this)
    }
    let HeroModel = mongoose.model('Hero', UserSchema, 'hero');
    
  2. 使用实例方法
    let hero = new HeroModel({
      name:'孙尚香',
      life:5400,
      type:'射手'
    });
    hero.print(); // {name:"孙尚香",left:5400,type:"射手"}
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值