我的模型的架构是这样的:-
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不是函数”。我该如何在特定子文档上进行这些更新。