javascript - 关于mongoose中的保存问题
本文介绍了javascript - 关于mongoose中的保存问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
我想要/business/:id/menus
在做Post
请求时,将刚刚新保存newMenus
中的_id
向数据库Business
中的menu
插入,但是,当我刚刚对一个新Menus
,怎么样才能获取到它到_id
?
./models/business.js
...
var businessSchema = new Schema({
name: {type: String, required: true},
locating: {type: String, required: true},
intro: {type: String, required: true},
menu: {type: Schema.Types.ObjectId, ref: 'Menus'},
created: {type: Date, default: Date.new },
published: {type: Boolean, default: false},
author: {type: Schema.Types.ObjectId, ref: 'Roots'}
})
...
./models/menus.js
...
var menusSchema = new Schema({
name: {type: String, required: true},
intro: {type: String, required: true},
busines: {type: Schema.Types.ObjectId, ref: 'Business'},
created: {type: Date, default: Date.new },
published: {type: Boolean, default: false},
author: {type: Schema.Types.ObjectId, ref: 'Roots'}
})
...
./api/add.js
router.post('/business/:id/menus',
passport.authenticate('bearer',{session: false}),
(req,res) => {
const data = req.body;
if(!data.name || !data.intro || !data.comments) {
res.json({
success: false,
message: '数据提交不完整'
})
} else {
Busines.findOne({_id: id},(err,business) => {
const newMenus = new Menus({
name: data.name,
intro: data.intro,
comments: data.comments,
busines: id
})
newMenus.save((err) => {
if(err) {
return res.json({
success: false,
message: '保存数据失败'
})
}
res.json({
success: false,
message: '保存数据成功'
})
})
})
// business.menus.push()
}
})
解决方案
save有第二个参数data 就是你保存那条的信息
newMenus.save((err,data)=>{
if(!err){
console.log(data._id)
}
})
这篇关于javascript - 关于mongoose中的保存问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文