在我的项目中,我有多个mongoose模式。要求是在所有架构中添加新属性。我想避免在所有架构中复制粘贴相同的东西。寻找替代方案。
谢谢
答案 0 :(得分:2)
实现了上述要求,在模式中共享公共属性(扩展模式)。以下是步骤,
使用所有公共属性创建一个对象,例如
var baseProperty = {
deleted : Boolean
createdBy : String,
updatedBy : String,
createdAt : Date,
updatedAt : Date,
};
然后以下列方式用于不同的模式,
/** SCHEMA 1 **/
var userSchema = new Schema({
name : String,
mobile : String,
email : String,
}, {});
userSchema.add(baseProperty); // Injecting common property in schema
mongoose.model("User", userSchema);
/** SCHEMA 2 **/
var addressSchema = new Schema({
city : String,
state : String,
country : String,
}, {});
addressSchema.add(baseProperty); // Injecting common property in schema
mongoose.model("Address", addressSchema);
现在,对于CRUD操作,上面的模式已经准备好了inject属性。