Javascript 正在运行回调函数,但不是主函数

Javascript 正在运行回调函数,但不是主函数,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我在一个路由中有这段代码,当我运行调试器时,thedoc2.save()函数正在运行,然后套接字发出,但我从未看到运行设置新mongoose值的$set。有什么原因吗?此外,在调试器中,bidTime和bidamunitum等值等于上次运行此路由时设置的先前值 User.findByIdAndUpdate(req.session.passport.user, { $set: { bidDetails: { bidAmount

我在一个路由中有这段代码,当我运行调试器时,
thedoc2.save()函数正在运行,然后套接字发出,但我从未看到运行设置新mongoose值的
$set
。有什么原因吗?此外,在调试器中,
bidTime
bidamunitum
等值等于上次运行此路由时设置的先前值

      User.findByIdAndUpdate(req.session.passport.user, {
        $set: {
          bidDetails: {
            bidAmount: req.body.bidAmount,
            bidLocation: 'Market Square',
            bidTime: moment().format()
          }
        }
      }, function(err, theDocu2) {
        if (err) {
          return console.log(err);
        }
        theDocu2.save();
        io.to(theDocu2.email).emit('activeBid', {
          activeBid: req.body.bidAmount,
          bidTime: theDocu2.bidDetails.bidTime
        });
      });

你“认为”你在做什么
.findByIdAndUpdate()
用于“更新”文档。那么,为什么您认为需要在以后调用
.save()
?用一个或另一个。您还缺少
{:“new”:true}
选项,否则
.findbyidanddupdate()
将在修改前返回“原始”文档。如果这里发生任何事情,净效果是一个取消另一个,因为带有“原始”数据的
.save()
将覆盖对
.findbyiandupdate()
的修改,并且
$set
@marainesparnisari方法是异步的。但还有更大的问题。正如我所指出的,缺少
.save()
的更新结果在这里是一个没有意义的问题。还想知道
req.session.passport.user
是否不应该是
req.session.passport.user.\u id