Я хотел бы заменить объект в массиве с помощью индекса, но ничего не сохранится. Это то, что выглядит документ, как:Заменить объект в массиве в Mongoose
{
"_id": {
"$oid": "58a71ec0c80a9a0436ae2fb1"
},
"owner": "[email protected]",
"contacts": [
{
"work": "",
"home": "",
"mobile": "",
"email": "",
"company": "",
"last": "Contact",
"middle": "",
"first": "New"
},
{
"first": "Another",
"middle": "",
"last": "Contact",
"company": "",
"email": "",
"mobile": "",
"home": "",
"work": ""
}
],
"__v": 1
}
И это то, что я пытался ..
Contacts.findById({_id: "58a71ec0c80a9a0436ae2fb1"}, function(err,document) {
document.contacts[req.body.indexOfObjectToBeEdited] = req.body.updatedObject
console.log(document)
document.save(function(err) {
return res.json({event:"Updated Contact"})
})
})
Прямо перед document.save() I console.log (документ), и это отражает правильные изменения. Но когда я сохраняю, в mongodb ничего не обновляется, и я не получаю ошибок. Что я должен делать по-другому?
Что вы имеете в виду, когда вы говорите, «когда я печатаю»? Вы имеете в виду после сохранения функции? –
Прямо перед document.save, я буду console.log (документ), и он выглядит обновлен. Но когда я проверяю db после фактического сохранения, похоже, что он никогда не обновлялся. – Zach