3
我有一個使用Mongoose的Express應用程序。我有一個模型使用Express和Mongoose更新嵌套數組
var AttendeeSchema = new Schema({
name: String,
registered: Boolean
});
var EventSchema = new Schema({
name: String,
description: String,
attendees : [AttendeeSchema],
created: { type: Date, default: Date.now },
updated: { type: Date, default: Date.now }
});
創建一個事件的代碼是:
router.route('/:event_id')
.get(function(req, res) {
Event.findById(req.params.event_id, function(err, event) {
if (err)
res.send(err);
res.json(event);
});
})
.put(function(req, res) {
Event.findById(req.params.event_id, function(err, event) {
if (err)
res.send(err);
event.name = req.body.name;
event.description = req.body.description;
event.attendees: req.body.attendees;
event.save(function(err) {
if (err)
res.send(err);
res.json({ message: 'Event updated successfully!' });
});
});
})
用於更新事件的代碼是:
router.route('/:event_id')
.put(function(req, res) {
Event.findById(req.params.event_id, function(err, event) {
if (err)
res.send(err);
event.name = req.body.name;
event.description = req.body.description;
event.attendees: req.body.attendees;
event.save(function(err) {
if (err)
res.send(err);
res.json({ message: 'Event updated successfully!' });
});
});
})
的問題是,事件正在創建成功但是,當我嘗試更新事件時,它僅更新事件名稱和說明,但不更改與會者姓名或註冊狀態。我也注意到,版本不是從「__v0」更新爲「__v1」
任何人有一些提示,爲什麼我不能用上面的代碼更新與會者的具體信息?
我假設的代碼'event.attendees:req.body.attendees;'是一個錯字,你的意思它是' event.attendees = req.body.attendees;'? –