0

私はマングースランダムプラグインを使用しています。
私のスキーマ定義では、私は呼び出します

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);

そうしないと、「Model .... has no method 'someMethod'」というエラーが発生
します。静的関数のゲーム変数は、スクリプトの後半でのみ定義されますが、イベントとして認識されます。
=>おまけの質問: なぜそれが機能するのか誰か知っていますか?

4

1 に答える 1