Редактировать вложенные значения по реляционному _id в mongoose - PullRequest
0 голосов
/ 21 июня 2019

Здравствуйте, у меня есть реляционные _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
}

Таким образом, этот идентификатор хранится в другом имени коллекции 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 : []
    };

Ответы [ 2 ]

0 голосов
/ 27 июня 2019

Вы должны создать метод в модели Пользователь , пример для редактирования email :

User.edit=async function (id,newEmail){
let user = await User.findOne({_id:id}).exec();
user.email=newEmail;
await user.save();
}

In Admin ,

...
let admin = await Admin.findOne({_id:id}).exec();
await User.edit(admin.users[0])
...

0 голосов
/ 21 июня 2019
 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.   
    })
...