是否可以使虚拟字段也是模型中的字段?
var exampleSchema = new Schema({
name : {type: String, required: true}
slug:: {type: String}
});
exampleSchema.virtual('slug').get(function() {
if(this.slug && this.slug.length){
return this.slug;
}
return this.name.toLowerCase().replace(/ /g, '');
});
如果设置了slug,我想要返回slug。如果没有,我想从名称返回一个计算值。
我不想使用静态方法,它在拉取记录时需要成为结果的一部分。
答案 0 :(得分:0)
您可以创建自定义getter函数并返回值(如果存在)或计算值(如果它不存在)。
var exampleSchema = new Schema({
name: {type: String, required: true}
slug: {
type: String,
get: function(value) {
if (value) {
return value;
} else {
return this.name.toLowerCase().replace(/ /g, '');
}
}
}
});