[英]Add array to subdocument Mongoose
我正在尝试使用Express将数组添加到Mongoose中的现有子文档中,但是我似乎无法弄清楚
这是我的猫鼬模型:
var subitems = new mongoose.Schema({
_id: ObjectId,
title: String,
messages: Array
});
var menuItems = new mongoose.Schema({
title : String,
subitem: [subitems]
}, {collection: 'menu_items'});
module.exports = mongoose.model("menu_items", menuItems);
我正在使用子文档中的ID更新“子项目”中的特定项目,这是Express Update:
postController.postArticles = function(req, res,item) {
var id = req.body.id;
var saveData = {
title: req.body.title,
text: req.body.text
};
item.update({_id: id}, {$push:{messages: saveData}},(err, result) => {
});
};
它没有在数据库中添加任何内容,有人有想法吗?
使用猫鼬,您必须更新整个对象。 因此,首先要使用find或findOne获得项,然后必须使用push将元素添加到数组中,最后调用猫鼬对象的.save()方法。 像这样:
postController.postArticles = function(req, res,item) {
var id = req.body.id;
item.findOne({_id: id}, function(error, myItem) {
var saveData = {
title: req.body.title,
text: req.body.text
};
myItem.messages.push(saveData);
myItem.save();
});
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.