保存
后,我尝试更新架构中外键的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})
})
})
}
})
})
但此menus
数组未更新后
这是我的Menu
架构
const MenuSchema = mongoose.Schema({
menu_name:{
type: String,
required: true
},
items:[
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Item'
}
]
})
Restaurant
架构
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'
}
]
})
答案 0 :(得分:0)
尝试简单
Restaurant.findRestById(restaurantId, (err, restaurant) => {
restaurant.update({ $push: { menus: menu.id }}, (err) => {
res.json({ status: true })
})
})
您的save
可能已覆盖了第一次update
更改。
使用时间更短findOneAndUpdate。