繁体   English   中英

无法更改Node.js中mongoDb数据库中存储的数据

[英]Not able to change data stored in mongoDb database in Nodejs

我想在将数据提交到数据库后更改按钮值,我为按钮文本分配了一个变量,并试图从后端设置它的值,但是它不起作用

这是我的代码

后端

//after click action
 router.post('/accept/:id',isLoggedIn,function(req,res){

 User.findByIdAndUpdate(req.user._id, {$set:
        {'friendRequest.Status':'Accepted'}},function(err,founduser){
          if (err) {
            console.log(err);
          } else {

               res.render('friendrequest',{user:founduser});
          }
        })
    })

数据库模型

在这里,我将按钮的默认值设置为“接受”,应将其更改为“接受”

    var  mongoose = require('mongoose');
    var passportLocalMongoose = require('passport-local-mongoose');

    var UserSchema = new mongoose.Schema({
    username:String,
    password :String,



      friendRequest:[{      //Target database model
        id:{
        type : mongoose.Schema.Types.ObjectId,
        ref : "User"
      },
        username: String,
     Status:{type:String,default:"Accept" }  //default value of button  
    }]



    UserSchema.plugin(passportLocalMongoose);

    module.exports = mongoose.model("User",UserSchema);

前端

 <h3 id='username'><%= request.username %></h3>  

</div>
<div  class="four wide column">
<form  action = "/accept/<%=user.id%>" method = "post">
<button id="add" class="ui  medium  blue button"><%=request.Status%>
</button> 
</form>

或者,如果您有其他方法可以提出建议,可以解决此问题

要更新数组中的对象,请使用$匹配所有索引:

{$set: {'friendRequest.$.Status':'Accepted'}}

这会将用户的所有friendRequest更新为“已接受”状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM