javascript - 关于mongoose中的保存问题

查看:97
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆