Mongoose: использовать плагин в статическом методе Schema

Я использую случайный плагин Мангуста.
В моем определении схемы я называю

GameSchema.plugin(random, { path: 'r' });  

После этого у меня есть собственный статический метод, который использует плагин:

GameSchema.statics.someMethod {  
    [...]
    GameSchema.findRandom...  

И я получаю ошибку

TypeError: Object #<Schema> has no method 'findRandom'

Есть ли способ достичь того, что я пытаюсь сделать, или я должен внедрить какое-то хранилище?

РЕДАКТИРОВАТЬ:
Ответ Бена сработал, мне нужно было использовать findRandom для модели, а не для схемы.
Точность для тех, кто в моем случае: вам нужно сначала объявить вашу статическую функцию

GameSchema.statics.someMethod {  
    [...]
    Game.findRandom...

затем зарегистрируйте свою схему

var Game = mongoose.model('Game', GameSchema);

в противном случае вы получите "Модель.... не имеет метода someMethod"
Игровая переменная в статической функции является распознанным событием, хотя она определяется только позже в скрипте
=> Бонусный вопрос: кто-нибудь знает, почему это работает?

1 ответ

Решение

Вы вызываете метод в схеме, тогда как вы должны вызывать его в модели.

var Game = mongoose.model('Game', GameSchema);

Game.findRandom()...
Другие вопросы по тегам