Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 保存另一个对象时更新ObjectId_Javascript_Node.js_Mongodb_Mongoose_Mongoose Schema - Fatal编程技术网

Javascript 保存另一个对象时更新ObjectId

Javascript 保存另一个对象时更新ObjectId,javascript,node.js,mongodb,mongoose,mongoose-schema,Javascript,Node.js,Mongodb,Mongoose,Mongoose Schema,保存后,我正在尝试更新架构中外键的objectId router.post('/add/:id', (req,res)=>{ const newMenu = new Menu() newMenu.menu_name = req.body.menu_name const restaurantId = req.params.id Menu.addNewMenu(newMenu, (err, menu)=>{ if (err) {

保存后,我正在尝试更新架构中外键的objectId

   router.post('/add/:id', (req,res)=>{
    const newMenu = new Menu()
    newMenu.menu_name = req.body.menu_name

    const restaurantId = req.params.id

    Menu.addNewMenu(newMenu, (err, menu)=>{
      if (err) {
        console.log(err);
        res.json({status: false, err: err})
      }else {
        Restaurant.findRestById(restaurantId,(err,restaurant)=>{
          restaurant.update({
            $push: {menus: menu._id}
          })
          restaurant.save((err,rest)=>{
            res.json({status: true})
          })
        })
      }
    })
  })
但是在此之后,
菜单
数组不会得到更新

这是我的
菜单
模式

    const MenuSchema = mongoose.Schema({
  menu_name:{
    type: String,
    required: true
  },
  items:[
    {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'Item'
    }
  ]
})
    const RestaurantSchema = mongoose.Schema({
  rest_name: {
    type: String,
    required: true
  },
  opening_period:{
    type: String,
    required: true
  },
  image_url:{
    type:String,
    required: true
  },
  menus:[
    {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'Menu'
    }
  ]
})
餐厅
模式

    const MenuSchema = mongoose.Schema({
  menu_name:{
    type: String,
    required: true
  },
  items:[
    {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'Item'
    }
  ]
})
    const RestaurantSchema = mongoose.Schema({
  rest_name: {
    type: String,
    required: true
  },
  opening_period:{
    type: String,
    required: true
  },
  image_url:{
    type:String,
    required: true
  },
  menus:[
    {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'Menu'
    }
  ]
})
简单地尝试

Restaurant.findRestById(restaurantId, (err, restaurant) => {
    restaurant.update({ $push: { menus: menu.id }}, (err) => {
         res.json({ status: true })
    })
}) 
您的
保存
可能覆盖了第一次
更新
更改


缩短使用时间。

小备注:在
更新
之后,您不需要调用
保存
,因为后者应该保存文档。哦,但是它仍然不起作用是的,谢谢你的工作。保存操作覆盖了更新