猫鼬参考未在父文档中放置ObjectId

时间:2019-02-05 15:14:22

标签: express mongoose reference

我的Mongoose模型没有将ObjectId放在父文档中以引用另一个集合中的子文档。我该怎么办?

这些是我的模特:

menu_items.js

var menuItems = new mongoose.Schema({
  title : String,
  subitem: [{type: mongoose.Schema.Types.ObjectId,ref: 'sub_items'}]
}, {collection: 'menu_items'});

module.exports = mongoose.model("menu_items", menuItems);

sub_items.js

var subItems = new mongoose.Schema({
  title: String,
},{collection: 'sub_items'});

module.exports = mongoose.model("sub_items", subItems);

我在ExpressJS中的子项目发布功能:

postController.postSubitems = function(req,res,item) {
  var id = req.body.id;
  var saveData =  {
    title: req.body.sub_item
  };
  var data = new item(saveData);
  saveToDB(data,res);
};

1 个答案:

答案 0 :(得分:1)

您还需要更新您的menuItem。例如,假设新的sub_item的_id为123456。您需要像这样更新menuItem:

menuItem.subitem.push(123456);
menuItem.save();

这会将_id添加到子项数组,从而为menuItem提供对指定sub_item的引用