猫鼬中的文档更新

时间:2018-10-20 18:04:20

标签: node.js mongodb mongoose

我的模型的架构是这样的:-

var socialSchema = new mongoose.Schema({
  friend_names:[String],
  friend_pics:[String],
  friend_id:[String],
  friend_requests:[String],
  friend_req_profilepic:[String]

})


var userSchema= new mongoose.Schema({
    name: {
      type: String,
    },
    username: {
      type: String,
      index:true
    },
    email: {
      type: String,
    },
    password: {
      type: String,

    },

      profileimage:{
        type:String
    },

    friends:{
      type:Number
    },

    social:[socialSchema],

  })

我实际上正在尝试使用mongoose findOne查询以以下方式更新特定子文档中的当前用户详细信息:-

var user=req.user;  //current user
var frname ="xyz";  //the sub-doc where i want to do the updations
   var i=0;
User
   .findOne({name:frname})
   .select('social')
   .exec(function(err,doc){

     var doc = doc.social;

          for(i=0;i<100;i++){
            if(doc[i].friend_names==user.name){
              break;
            }
          }
            var socialid =doc[i]._id;

            var thisSocial = doc.id(socialid);
            thisSocial.friend_names = undefined;
            thisSocial.friend_pics= undefined;
            thisSocial._id=undefined;


     doc.save(function(err, docUpdated) {
     if (err) {
       res
         .status(500)
         .json(err);
     } else {
       console.log(docUpdated)
}
})
}

在这里,我希望对子文档(在这种情况下为doc)进行更新。但是,当执行以上代码时,它显示错误“ doc.save不是函数”。我该如何在特定子文档上进行这些更新。

0 个答案:

没有答案