我正在尝试将数据推送到 mongo 模型中对象的数组中 通过使用 req.params 方法 但它给了我 错误:
MongoError:无法使用部分( friend 的 friend .用户名)来遍历元素( { 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");
}})
关于html - Mongodb $push 运算符不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47285021/