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(){})
扫描二维码关注公众号,回复:
11380788 查看本文章
前置处理中间件
.pre()
保存完成后进行的中间件
DBRef
populate()