在猫鼬中按关系_id编辑嵌套值



你好,我在数组中有关系_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])
...

最新更新