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

否则你会得到“模型......没有方法'someMethod'”
静态函数中的游戏变量是公认的事件,尽管它只是在脚本的后面定义。
=> 奖金问题:有人知道它为什么有效吗?

4

1 回答 1

1

您在模式上调用该方法,而您需要在模型上调用它。

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

Game.findRandom()...
于 2014-09-19T10:50:01.840 回答