图上红框区域是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')
})