Oli*_*xon 2 mongoose mongodb node.js
我正在为删除对象编写一个清理函数。这被称为正常。我的问题是;另一个模型没有正常填充。(它在其他地方工作)
在 ModelGame.js 中
var mongoose = require('mongoose');
var ModelUser = require(process.env.root + '/models/ModelUser');
// Some schema code
// Some schema code
// Some schema code
// Remove ids to users.
gameScheme.post('remove', function(game) {
game.removeGameIdsOnUsers().then(function(){
next();
})
.catch(function(err){
next(err);
})
;
});
gameScheme.methods.removeGameIdsOnUsers = function () {
var self = this;
return this.users.reduce(function(promise, user) {
return ModelUser.findOne({id: user}).exec()
.then(function(foundUser) {
return foundUser.removeGameId(self)
.catch(function(err) {
console.log('Error removing game id to user.' + user);
console.log(err);
Promise.reject(err);
}),
Promise.resolve();
});
});
};
Run Code Online (Sandbox Code Playgroud)
我得到以下
TypeError: ModelUser.findOne is not a function
Run Code Online (Sandbox Code Playgroud)
记录 ModelUser 时,它只是 {}
我猜这是由于循环包含(ModelUser需要ModelGame,需要ModelUser)。
您可以ModelUser在运行时使用mongoose.model()以下方法获取引用:
gameScheme.methods.removeGameIdsOnUsers = function () {
const ModelUser = mongoose.model('ModelUser');
...
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1300 次 |
| 最近记录: |