Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在后期保存中进行mongoose查询?_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 如何在后期保存中进行mongoose查询?

Node.js 如何在后期保存中进行mongoose查询?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,如何在用户架构的后期保存中查询公司名称 UserSchema.post('save', function (doc) { console.warn("POST SAVE", doc); console.log(this, "---------------------------------------------"); this.findOne({_id:doc._id}) .populate('company') .exec(function (err

如何在用户架构的后期保存中查询公司名称

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);
               });
         }
   });
});
UserSchema.post('save',函数(doc){
控制台。警告(“保存后”,文档);
console.log(此“---------------------------------------------------”;
this.findOne({u-id:doc.\u-id})
.populate('公司')
.exec(函数(错误,\u用户){
if(err)返回next(err);
否则{
//console.warn(“\u USER”,\u USER);
如果(_user.company.name)doc.companyName=_user.company.name;
Sync.syncUser(文档)
.然后(函数(_r){
//console.log(_r,“SYNC OK!”);
next();
}否则{
console.warn(“保存后->同步错误:”,错误);
返回下一个(错误);
}
})
.失败(功能(错误){
console.warn(“保存后->同步错误:”,错误);
返回下一个(错误);
});
}
});
});
使用此代码,我有一个错误:

TypeError:this.findOne不是函数

尝试
User.findOne()
而不是
this
或使用
this.constructor.findOne

这是你可能要做的第一件事

var User=mongoose.model('User',UserSchema)

尝试
User.findOne()
而不是
this
或使用
this.constructor.findOne

这是你可能要做的第一件事


var User=mongoose.model('User',UserSchema)

这个.constructor.findOne对我不起作用。我使用
doc.constructor.findOne
这个.constructor.findOne
对我不起作用。我使用
doc.constructor.findOne

您尝试了
UserSchema.findOne()
而不是
这个
对吗?或者
this.constructor.findOne
您尝试了
UserSchema.findOne()
而不是
this
对吗?或者
this.constructor.findOne
我使用了
this.constructor.findOne
并且它工作了。非常感谢你!我使用了
this.constructor.findOne
,它成功了。非常感谢你!