Javascript 保存另一个对象时更新ObjectId
保存后,我正在尝试更新架构中外键的objectIdJavascript 保存另一个对象时更新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) {
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 })
})
})
您的保存
可能覆盖了第一次更新
更改
缩短使用时间。小备注:在
更新
之后,您不需要调用保存
,因为后者应该保存文档。哦,但是它仍然不起作用是的,谢谢你的工作。保存操作覆盖了更新