Mongoose提供了修飾符功能用于對存取的資料進行一些加工,常用的修飾符有以幾下幾種:
1. 預定義修飾符
1. lowercase 轉小寫
2. uppercase 轉大寫
3. trim 去掉前後空格
2. 自定義修飾符
1. set 設定資料,會将修飾過的資料處理入庫。
2. get 擷取執行個體資料時修飾,不會影響入庫的資料,使用較少。
3. 預定義修飾符與自定義修飾符 set 執行個體(常用)
連接配接資料庫,檔案名為db.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/test', { useNewUrlParser: true }, function (err) {
if (err) {
console.log(err);
return;
}
console.log('資料庫連接配接成功')
});
module.exports = mongoose;
複制
定義schema、生成模型,檔案名為focus.js
// 引入自定義子產品化的資料庫連接配接
var mongoose = require('./db.js');
// 定義schema
var FocusSchema = mongoose.Schema({
title: {
type: String,
// 對title字段去掉前後的空格
trim: true
},
pic: String,
redirect: {
type: String,
// 自定義設定資料,parmas為目前的值
// 為域名添加協定
set(parmas) {
if (!parmas) {
return ''
} else {
if (parmas.indexOf('http://') != 0 && parmas.indexOf('https://') != 0) {
return 'http://' + parmas;
}
return parmas
}
}
},
status: {
type: Number,
default: 1
}
})
module.exports = mongoose.model('Focus', FocusSchema, 'focus');
複制
在需要進行資料操作的頁面引入focus.js ,進行資料操作
var FocusModel = require('./model/focus.js');
var focus = new FocusModel({
title: " 國際新聞 ",
pic: 'http://www.xxx.com/x.png',
redirect: 'www.baidu.com'
});
focus.save(function (err) {
if (err) {
console.log(err);
return;
}
FocusModel.find({}, function (err, docs) {
if (err) {
console.log(err);
return;
}
console.log(docs);
// "國際新聞"将會去掉前後的空格
// www.baidu.com 将會變成 http://www.baidu.com
})
});
複制
4. 自定義修飾符 get 執行個體(不常用)
連接配接資料庫,檔案名為db.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/test', { useNewUrlParser: true }, function (err) {
if (err) {
console.log(err);
return;
}
console.log('資料庫連接配接成功')
});
module.exports = mongoose;
複制
定義schema、生成模型,檔案名為 user.js
var mongoose=require('./db.js');
var UserSchema=mongoose.Schema({
name:{
type:String,
// 将擷取的執行個體資料添加辨別符
get(params){
return "姓名:" + params
}
},
age:{
type:Number,
// 将擷取的執行個體資料添加辨別符
get(params){
return "年齡:"+ params;
}
},
status:{
type:Number,
default:1
}
})
module.exports=mongoose.model('User',UserSchema,'user');
複制
在需要進行資料操作的頁面引入user.js ,進行資料操作,注意隻能作用于生成的執行個體
var UserModel = require('./model/user.js');
var user = new UserModel({
name: '張三',
age: 20
});
console.log(user.name, user.age);
// 姓名:張三,年齡:20
複制