Я видел много примеров, как обновить массив, как этот Mongoose find/update subdocument и это один Partial update of a subdocument with nodejs/mongooseКак сохранить массив вспомогательного документа в мангусте?
, но моя цель состоит в том, чтобы обновить конкретное поле, например, в форме, в котором пользователь вводит данные.
Я использую ejs для шаблонов.
Вот код
Для ясности здесь схемы пользователя
var UserSchema = mongoose.Schema({
resume: {
education: [{ type: String}],
}
});
код маршрутизации
router.post('/update-resume', function(req, res) {
User.findById(req.user._id, function(err, foundUser) {
// Take a look over here, how do I update an item in this array?
if (req.body.education) foundUser.resume.education.push(req.body.education);
foundUser.save(function(err) {
if (err) return next(err);
req.flash('message', 'Successfully update a resume');
return res.redirect('/update-resume')
});
});
});
Если вы посмотрите на код выше, моя цель состоит в том, чтобы запросить пользовательские данные, которые возобновляются, и обновляют текущее значение.
Код для переднего конца
<form role="form" method="post">
<div class="form-group">
<label for="education">Education:</label>
<% for(var i = 0; i < user.resume.education.length; i++) { %>
<input type="text" class="form-control" name="education" id="education" value="<%= user.resume.education[i] %>">
<% } %>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
код Frontend делает работу, перебирать в каждом user.resume.education
массиве, и показать все значения в массиве. Но как мне его обновить?
https://gist.github.com/anonymous/6e764675a8c48e20bbd0 –
Проверьте суть, так или иначе, я не знаю, как это реализовать. –
и во-вторых, как орган-парсер будет знать, какой req.body принадлежит к тому индексу? –