Schema的默认参数
在定义Schema
数据模式的时候,可以为字段设置默认值;
如果新增的时候,没有设置该字段的值,那么就会使用默认参数;
var userSchema = mongoose.Schema({
name: String,
age: Number,
isUse: {
type: Boolean,
default: true
}
})
var user = new UserModel({
name: '张三',
age: 20
})
user.save((err, data) => {
console.log(data)
// 插入数据
// {
// name: '张三',
// age: 20,
// isUse: true
// }
})
Schema设置索引
var userSchema = mongoose.Schema({
name: {
type: String,
index: true, // 普通索引
},
loginName: {
type: String,
unique: true, // 唯一索引
},
age: Number,
})
// db.user.getIndexes()
// {
// "v" : 2,
// "key" : {
// "name" : 1
// },
// "name" : "name_1",
// "background" : true
// },
// {
// "v" : 2,
// "key" : {
// "loginName" : 1
// },
// "name" : "loginName_1",
// "background" : true,
// "unique" : true
// }
Schema设置预定义模式修饰符
var userSchema = mongoose.Schema({
name:String,
loginName: {
type: String,
lowercase: true, // 全部小写
// uppercase: true, // 全部大写
},
age: Number,
sex: Number,
description: {
type: "string",
default: '描述',
trim: true, // 去除首尾的空格
}
})
Schema自定义修饰符
set
修饰符:在增加数据的时候对数据进行操作get
修饰符:修改的是model
实例化的数据,不会影响数据库表的数据,一般不用
var userSchema = mongoose.Schema({
name:String,
loginName: String,
age: {
type: String,
set(val) {
return `${val}岁`
},
get(val) {
return `今年${val}`
}
},
sex: Number,
})
var user = new UserModel({
name: '张三',
loginName: 'zhangsan',
age: 20,
sex: 1
})
console.log(user.age) // '今年20岁'
user.save((err, data) => {
console.log(data)
// {
// name: '张三',
// loginName: 'zhangsan',
// age: '20岁',
// sex: 1,
// }
})