【发布时间】:2017-05-13 11:34:51
【问题描述】:
在我的项目中,我有多个猫鼬模式。要求是在所有模式中添加新属性。我想避免在所有模式中复制粘贴相同的东西。寻找替代方案。
谢谢
【问题讨论】:
标签: mongoose
在我的项目中,我有多个猫鼬模式。要求是在所有模式中添加新属性。我想避免在所有模式中复制粘贴相同的东西。寻找替代方案。
谢谢
【问题讨论】:
标签: mongoose
实现了上述要求,跨架构共享公共属性,(扩展架构)。以下是步骤,
创建了一个具有所有公共属性的对象,例如,
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 操作。
【讨论】: