你好,我在数组中有关系_id
。对象内容位于其他集合中。我只能在我的数组中查看Object("_id")
。
我想编辑那些_ids
的对象。 如何使用关系_ids
进行编辑?
我有这样的数据响应
{
"admins": {
"users": [
"5d089739d8aae228d7f10c1e" //<------ edit this id object
],
"email": "jertacomlu@desoz.com",
"password": "$2a$10$C/DsmoHK57vIUt7g4wRsYulHLigmc1wGLObwu2/qkFkSeYp28bAOy",
},
"_id": "5d089264d8aae228d7f10c1d",
"companyName":"Company 1",
"__v": 0
}
所以这个 id 存储在其他集合名称Userr
中。
对象是这样的:-
[ {
"_id": "5d089739d8aae228d7f10c1e",
"email": "jertacomlu@desoz.com",
"password": "$2a$10$0Slx3yFeb7UD0qep.TWSI.JpQGl0CzlGhNJ162JtA5Uvt6osyrIl.",
"firstName": "Sima",
"lastName": "Cezo",
"phoneNumber": "8877123456",
"__v": 0
}
]
我想编辑这些字段。如何使用关系_id
?
编辑:-
我的家长控制器
var admin = new Admin();
admin.companyName = req.body.companyName;
admin.admins = {
email : req.body.email,
password: req.body.password,
role : "admin",
verified :"false",
active: "OFF",
users : []
};
admin.find({id:"5d089264d8aae228d7f10c1d"}).populate("users").then(data=>{
//update the fields which you would find in the data object
data.save()
//your data would be changed.
})
您必须在模型用户 中创建一个方法,例如编辑电子邮件:
User.edit=async function (id,newEmail){
let user = await User.findOne({_id:id}).exec();
user.email=newEmail;
await user.save();
}
在 管理员 中 ,
...
let admin = await Admin.findOne({_id:id}).exec();
await User.edit(admin.users[0])
...