Текущий Я могу редактировать объекты, которые не являются вложенными.Я хочу редактировать свойства родительского и вложенного объекта.Как я могу сделать это, используя мангуста.
Редактировать маршрут: -
router.put('/editUser/:userId', checkAuth, function (req, res, next) {
if(req.userData.role2 === 'superadmin') {
const id = req.params.userId;
const newUserData = req.body;
Admin.findOneAndUpdate({ _id: id }, {$set: newUserData}, { new: true }, (err, doc) => {
if (err) return res.send(err.message);
if (doc) return res.send(doc);
})
} else {
res.status(401).send(["Not authorized. Only super admin can update details."]);
}
});
Контроллер: -
module.exports.register = (req, res, next) =>{
var admin = new Admin();
admin.companyName = req.body.companyName;
admin.address = req.body.address;
admin.admins = {
firstName : req.body.firstName,
lastName : req.body.lastName,
phoneNumber : req.body.phoneNumber,
};
У меня есть ответ json примерно так: -
{
"admins": {
"firstName": "ABC",
"lastName": "FF",
"phoneNumber": "855599"
},
"_id": "5d008f5a287805414247bd33",
"companyName": "ABC",
"address" : "UAE"
"__v": 0
}
Я могу редактировать companyName
и address
.Как я могу редактировать свойства вложенных объектов также ??Какие изменения нужно внести в маршрут редактирования?
РЕДАКТИРОВАТЬ Добавлена схема
var adminSchema = new mongoose.Schema({
companyName : {
type: String,
required: "Company name can't be empty.",
required: false
},
companyID: {
type: String,
},
address : {
type: String,
required: "Address can't be empty."
},
admins: {
firstName : {
type: String,
required: "First name can't be empty."
},
lastName : {
type: String,
required: "Last name can't be empty."
},
phoneNumber :{
type: String,
required: "Reqired for further contact. Can't be empty."
}
}
});
mongoose.model('Admin', adminSchema);
И в Почтальоне, если я хочу просто отредактировать phoneNumber
Я передаю
URL: - localhost:3000/api/editUser/{id}
с телом "{phoneNumber": "0000000"}