node.js(四)Mongoose使用进阶

Mongoose使用进阶

模式的扩展

默认值

模型的初始化未被赋值的值

模式的方法

预定义修饰符

var user=mongoose.model('User',{
    nickname:{
        type:String,
        trim:true
    }
})

trim:去掉前后空格的修饰符

setter修饰符

存入数据库时使用

var user=mongoose.model('User',{
    bolg:{
        type:String,
        set:function(url){
            if(!url)return url;

            if(0!== url.indexOf('http://')&&0!==url.indexOf('https://'))
            url='http://'+url

            return url;
        }
    }
})

getter修饰符

取出数据库时使用

var user=mongoose.model('User',{
    bolg:{
        type:String,
        get:function(url){
            if(!url)return url;

            if(0!== url.indexOf('http://')&&0!==url.indexOf('https://'))
            url='http://'+url

            return url;
        }
    }
})

虚拟属性

.virtual()

模型的方法

自定义静态方法

.statics.创建的静态方法名=functuon(,){

}

自定义实例方法

.methods.实例方法名

数据的校验

预定义的验证器:

  • required
  • Number(max,min)
  • enum(枚举)
  • match 是否存在一个字段
var user=mongoose.model('User',{
    nickname:{
        type:String,
        requried:true
        enum:['dsdsa','dsd','dsdsd']
    }
})

自定义的验证器

vailedate:function(){

}

var user=mongoose.model('User',{
    nickname:{
        type:String,
        vailedate:function(){}
    }
})

中间件

文档中间件

  • init
  • validata
  • save
  • remove

查询中间件

  • count
  • findOne
  • findOneAndRemove
  • findOneAndUpdata
  • updata

后置处理中间件

.post('',function(){})

前置处理中间件

.pre()

保存完成后进行的中间件

DBRef

populate()

猜你喜欢

转载自blog.csdn.net/InkBamboo920/article/details/97264429