最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何在mongodb中更新后获取结果?

IT培训 admin 6浏览 0评论

如何在mongodb中更新后获取结果?

我正在使用mongo db.I工作在节点js应用程序中。我在更新的部分之前显示关键字的结果。我想如果用户输入关键字那么它应该显示在json但是在new关键字之前在mongodb关键字成功更新时显示在res.json中。我做错了什么?

app.post('/keyword', isLoggedIn, function (req, res) {
               User.update({_id:req.user._id},{$addToSet:{keyword:req.body.tags}},function (err, result) {
                    if (err) return handleError(err);

                    return true;
                  });
                  console.log(w);
                  res.json({user:req.user})

        })

假设我已经在关键字数组中有'lio',当我输入'apple'时它应该显示两个结果但它只显示lio关键字。在页面重新加载后它会显示两个关键字。

回答如下:

你这样做是错误的。 JavaScript是一种异步语言。在您的情况下,该函数返回数据而不等待响应。基本上,在执行更新功能之前返回数据。要解决此问题,请仅在更新功能内返回用户数据。

app.post('/keyword', isLoggedIn, function (req, res) {  
    User.findOneAndUpdate({_id:req.user._id},{$addToSet:
       {keyword:req.body.tags}, {returnNewDocument: true}},(err, result) => {
       if (err) return handleError(err);

       return res.json({user:user, result:result, flag: 1});
    });
});

您可以发送标志变量以检查值是否已正确更新。

如何在mongodb中更新后获取结果?

我正在使用mongo db.I工作在节点js应用程序中。我在更新的部分之前显示关键字的结果。我想如果用户输入关键字那么它应该显示在json但是在new关键字之前在mongodb关键字成功更新时显示在res.json中。我做错了什么?

app.post('/keyword', isLoggedIn, function (req, res) {
               User.update({_id:req.user._id},{$addToSet:{keyword:req.body.tags}},function (err, result) {
                    if (err) return handleError(err);

                    return true;
                  });
                  console.log(w);
                  res.json({user:req.user})

        })

假设我已经在关键字数组中有'lio',当我输入'apple'时它应该显示两个结果但它只显示lio关键字。在页面重新加载后它会显示两个关键字。

回答如下:

你这样做是错误的。 JavaScript是一种异步语言。在您的情况下,该函数返回数据而不等待响应。基本上,在执行更新功能之前返回数据。要解决此问题,请仅在更新功能内返回用户数据。

app.post('/keyword', isLoggedIn, function (req, res) {  
    User.findOneAndUpdate({_id:req.user._id},{$addToSet:
       {keyword:req.body.tags}, {returnNewDocument: true}},(err, result) => {
       if (err) return handleError(err);

       return res.json({user:user, result:result, flag: 1});
    });
});

您可以发送标志变量以检查值是否已正确更新。

发布评论

评论列表 (0)

  1. 暂无评论