如何在 Mongoose 的所有模式中设置公共属性?
Posted
技术标签:
【中文标题】如何在 Mongoose 的所有模式中设置公共属性?【英文标题】:How to set common property across all schema in Mongoose? 【发布时间】:2017-05-13 11:34:51 【问题描述】:在我的项目中,我有多个猫鼬模式。要求是在所有模式中添加新属性。我想避免在所有模式中复制粘贴相同的东西。寻找替代方案。
谢谢
【问题讨论】:
Mongoose: extending schemas的可能重复 【参考方案1】:实现了上述要求,跨架构共享公共属性,(扩展架构)。以下是步骤,
创建了一个具有所有公共属性的对象,例如,
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 操作。
【讨论】:
别提了,我用的mongoose版本是4.7.5以上是关于如何在 Mongoose 的所有模式中设置公共属性?的主要内容,如果未能解决你的问题,请参考以下文章
在 @nestjs/mongoose 中设置 mongoose 全局选项