How to access a static method from a instance meth

2019-03-18 13:17发布

问题:

How to access a static method from a instance method in mongoose?

I have a job model named Job. From a instance method job.start I want to call the static method Job.someStatic(). How do I get the reference to the Job, from the "this" in the instance method?

thanks

回答1:

The only way I've found to do that generically (without just calling Job.someStatic()) is:

this.model(this.constructor.modelName).someStatic();

Update thanks to @numbers1311407:

I don't know if it's always been the case, but as of at least Mongoose 3.6.11, you can shorten this to:

this.constructor.someStatic();

Mongoose 4.x Update

This still works in 4.4.12.



回答2:

Another option to access statics is:

this.schema.statics.someStatic()