繁体   English   中英

将数组添加到子文档Mongoose

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM