mongoose操作优化

api.post("/ocr_modify",function(req,res){
    var query = req.body;
    if(query.id){
        ocrModels.find({id : query.id},function(err,data){  //查询是否有次文章
            ocrModels.update({  //更新文章主要内容
                id : query.id
            },{
                content : query.content,
            },function(err,data){
                ocrModels.find({id : query.id},function(err,data){  //更新完成后查询版本号
                    console.log(data.version)
                    ocrModels.update({  //再次执行更新操作 版本号+1
                        id : query.id
                    },{
                        version : data.version++
                    },function(err,data){
                        ocrModels.find({  //查询修改后的数据 返回给前端
                            id : query.id
                        },function(err,data){
                            res.status(200).send(data)
                        })
                        
                    })
                })
            })
            
        })
        
    }
})

修改文章并更新版本号操作 感觉嵌套太多 不知流程是否走偏了?

阅读 2.7k
2 个回答

建议花三五天时间学一学mongodb的操作。这个操作(查询+修改文章+版本号自加1)可以一条命令完成。
下面是随手百度来的。可以参考一下。这是一个自加的例子,可以$inc的同时在$set来更新content字段等。
categoryModel.findOneAndUpdate({name:{$in:req.body.categorys}},{$inc:{total:1}},function(err){

      if (err) return console.log(err);
      res.json({status:'ok',msg:'发布成功'})
    })
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题