我使用的是Mongoose,我的模型就像 -
{
first_name:{
type:String
},
lastName:{
type:String
}
name:{
type:String
}
}
我想每当我使用firstName和lastName创建对象时,name字段应自动设置为firstName +" " + lastName。
我可以使用像Java一样的东西 -
name = this.firstName+this.lastName
提前致谢。
答案 0 :(得分:1)
使用pre
方法
schema.pre('save', function (next) {
this.name = this.lastName + this.firstName;
next();
});
var Person = mongoose.model('Person', schema);
function saveData() {
var p = new Person({
lastName: 'DD',
firstName: 'ss'
});
p.save(function(err, obj) {
console.log(obj);
});
}
结果
{ __v: 0,
name: 'DDss',
lastName: 'DD',
firstName: 'ss',
_id: 56af4489b81a1f2903a13608 }
答案 1 :(得分:0)
我个人更喜欢使用虚拟名称。
var PersonSchema = new Schema({
name: {
first: String
, last: String
}
});
PersonSchema
.virtual('name.full')
.get(function () {
return this.name.first + ' ' + this.name.last;
});