html - Mongodb $push 运算符不起作用

标签 html json node.js mongodb mongoose

我正在尝试将数据推送到 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/

相关文章:

html - "chevron"CSS 和浏览器缩放问题中的样式导航栏

html - 背景 Sprite 在 ie8 中不显示

node.js - 蒙戈错误: Can't canonicalize query: BadValue >1

node.js - 问题将 Firebase 添加到 Electron 项目,gRPC 依赖问题

javascript - 使用html5测量特定位置和当前位置之间的距离

javascript - 现场背景上的CSS模糊效果

java - 替换 JSONObject 中的 JSONObject

jquery - JSON解析错误语法错误意外结束输入

json - 用文件内容替换关键字

node.js - 如何在 MEAN 堆栈中使用 orientDB