Mongo的数据库$推操作员不工作

我想通过使用req.params方法在mongo模型的对象中的数组中推送数据,但它给我错误:

MongoError:不能使用部分(friends.username的朋友)遍历元素({friends:[]})

这是我的代码:

后端

router.post('/accept/:id/:username',isLoggedIn,function(req,res){ User.findOneAndUpdate({username:req.user.username,'friendRequest._id':req.params.id}, {$set:{'friendRequest.$.Status':'Friend','friendRequest.$.Color':'green'}},function(err,founduser){ if (err) { throw err; } else { User.findOneAndUpdate({username:req.user.username}, {$push:{'friends.username':req.params.username}} ,function(err,founduser){ if (err) { throw err; } else { //Error is coming from this line User.findOneAndUpdate({username:req.params.username}, {$push:{'friends.username':req.user.username}} ,function(err,founduser){ if (err) { throw err; } else { res.render("back"); } }) } }) } }) }) **My Model** var mongoose = require('mongoose'); var passportLocalMongoose = require('passport-local-mongoose'); var UserSchema = new mongoose.Schema({ username:String, password :String, friends:[{ username: String //Here I wanna insert a data }], 

前端

 <form action = "/accept/<%=request._id%>/<%=request.username%>" method = "post"> <button id="add" class="ui medium <%=request.Color%> button"><%=request.Status%></button> </form> 

有一个小的改变需要被做:

  User.findOneAndUpdate({ username: req.params.username }, { $push: { "friends":{ username:req.params.username } } },function(err,founduser){ if (err) { throw err; } else { res.render("back"); }})