MongoDB ObjectId详解及使用(通过_id查找数据处理)

图上红框区域是mongodb在添加数据的时候以自增长的形式为我们的数据增加的_id,但当我们获取_id值的时候  只是获取到了里面的字符串并没有获取到ObiectID();这时候我们在拿到这个_id进行其他操作的时候就无法实现,原因-----与数据库中的_id形式不一样。

解决上面的方式:

//与数据库默认的_id进行匹配

var ObjectID = require('mongodb').ObjectID;

js代码中的使用:

new   ObjectID(id)

案例:

app.js

//与数据库默认的_id进行匹配
var ObjectID = require('mongodb').ObjectID;

// 修改商品
app.get('/productedit',(req,res) => {

    //获取get传值id
    let id = req.query.id;
    // console.log(id)
    //Db为我们封装的操作数据库的模块(可把这里改成操作数据库的代码new ObjectID(id))
    //获取自增长的id     {"_id":new Db.ObjectID(id)}
    Db.find('productmanage','product',{"_id":new Db.ObjectID(id)},(err,data) => {
        if(err){
            res.send('修改商品失败!')
        }else{
            if(data.length>0){
                // 将数据渲染到模板引擎上
                res.render('productedit',{
                    list:data[0]
                });
            }else{
                res.send('<script>alert("修改商品失败");location.href="/login"</script>')
            }
        }
    })
    // res.render('productedit')
})

 

 

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值