我有一个使用Mongoose的Express应用程序。我有一个模型。
创建事件的代码如下:
更新事件的代码如下:
问题在于事件已经成功创建,但是当我尝试更新事件时,只有事件名称和描述被更新了,与出席者姓名或注册状态的更改无关。我还注意到版本未从“__v0”更新为“__v1”。
有人能给一些提示,为什么我不能使用上述代码更新出席者的特定信息吗?
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;
? - Andrew Lavers