Answer the question
In order to leave comments, you need to log in
How to properly update an object in a model via mongoose?
Hello. In the code, I painted the whole problem that needs to be solved.
// Модель пользователя
const user = new Schema({
name: {
familyName: String,
givenName: String,
middleName: String
},
age: Number
});
const modelUser = mongoose.model("User", User);
// Создание нового пользователя
const newUser = new modelUser({
name: {
familyName: "Фамилия",
givenName: "Имя",
middleName: "Отчество"
},
age: 25
})
// Сохраняем нового пользователя
newUser.save();
// Изменим имя пользователя
const doc = {
name: {
givenName: "Новое имя пользователя"
}
}
modelUser.findByIdAndUpdate(newUser.id, doc, { new: true}, (err, doc) => {
if (err) return err;
console.log(doc)
// Когда мы изменяем,то получается вот это. Мне так ненужно
/* {
name: {
givenName: "Новое имя пользователя"
},
age: 25
}
*/
// Нужно чтобы было так
/* {
name: {
familyName: "Фамилия",
givenName: "Новое имя пользователя",
middleName: "Отчество"
},
age: 25
}
*/
}
Answer the question
In order to leave comments, you need to log in
Just use the statement $set
modelUser.findByIdAndUpdate(id, {$set: doc}, {new: true})
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question