我可以添加一个mongoose插件模型创build后?

我有一种情况,我需要添加一个插件mongoose模型,但更改传递给该插件的选项可能每次使用。

看下面的例子:

const PersonnelSchema = new Schema({ _id: { type: Schema.ObjectId }, GivenName: { type: String }, FamilyName: { type: String } }); module.exports = mongoose.model('Personnel', PersonnelSchema, 'Personnel'); 

我希望能够做的是在使用模型的时候添加插件,以便我可以传递参数给它。

我已经尝试添加插件到模型上的模式对象,例如:

  objModel.schema.plugin(mongoosastic, { index: strIndexName, transform: (data) => { data.TenantDB = strTenantDB; return data; } }); 

但是这只会将插件方法添加到模式对象上的静态,并且不会在模型上正确初始化插件。

有什么办法实现这个?

发布后不久,我发现可以通过在将模型附加到插件后调用我的模型编译来实现这一点,例如:

 objModel.schema.plugin(mongoosastic, objOptions); return objModel.compile(objModel.modelName, objModel.schema, objModel.collection.name, objModel.db, mongoose);