0
ユーザースキーマの保存後に会社名を照会するにはどうすればよいですか?このコードではポストセーブでmongooseクエリを実行するには?
UserSchema.post('save', function (doc) {
console.warn("POST SAVE", doc);
console.log(this, "---------------------------------------------");
this.findOne({_id:doc._id})
.populate('company')
.exec(function (err, _user) {
if(err) return next(err);
else{
// console.warn("_USER", _user);
if(_user.company.name) doc.companyName = _user.company.name;
Sync.syncUser(doc)
.then(function (_r) {
// console.log(_r,"<-----------------------------------------------------------");
if (_r) {
console.warn("POST SAVE -> SYNC OK!");
next();
} else {
console.warn("POST SAVE -> SYNC ERR: ", err);
return next(err);
}
})
.fail(function (err) {
console.warn("POST SAVE -> SYNC ERR: ", err);
return next(err);
});
}
});
});
私はエラーを持っている:
TypeError: this.findOne is not a function
あなたは 'UserSc hema.findOne() 'の代わりに' this'の権利?または 'this.constructor.findOne' –