2015-08-28 136 views
0

是否有可能有一个虚拟领域也是模型中的领域?虚拟领域和实际领域

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, ''); 
}); 

如果设置了slu I,我想返回slu。。如果不是,我想从名字返回一个计算值。

我不想使用静态方法,它需要拉动记录时结果的一部分。

回答

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, ''); 
      } 
     } 
    } 
});