首页 > 解决方案 > 我在使用 node.js 更新 mongodb 中的数据时遇到了滞后

问题描述

这是我的代码

 Datas.findOneAndUpdate({"_id":req.body._id}, Update(req.body))
         .then((data)=>{
                 res.json({data})
               })

我的数据库在下一次更新查询时更新,也就是说我总是有 1 个查询滞后,它实际上正在更新,但它在下一次查询时显示更新的结果,为什么会这样,是因为我调用了函数更新吗?

function Update(n){
  let filter={};
if(n.issue_title!=""){filter.issue_title=n.issue_title}
if(n.issue_text!=""){filter.issue_text=n.issue_text}
if(n.created_by!=""){filter.created_by=n.created_by}
if(n.assigned_to!=""){filter.assigned_to=n.assigned_to}
if(n.status_text!=""){filter.status_text=n.status_text}
console.log("filter"+JSON.stringify(filter))
return filter;
}

是因为调用函数而滞后,我该如何解决

标签: javascriptnode.jsmongodbmongoose

解决方案


在更新对象之后传递 {new:true} 对象。

Datas.findOneAndUpdate({"_id":req.body._id},update_query, {new:true})
         .then((data)=>{
                 res.json({data})
               })

推荐阅读