我正在努力通过api从我的数据库中删除记录。
首先我从API中获取完整记录,然后当记录未按照我想要的方式填充时,我可以选择在前端删除它。我传递了对象ID,并希望使用mongoose方法将其删除。但是,无论我如何通过id,我似乎无法删除记录。
以下是删除路线的代码:
router.delete('/database/delete/', (req, res, next) => {
let id = 'ObjectId("'.concat(req.body.id).concat('")');
let id2 = req.body.id;
console.log(id, id2)
db.findByIdAndRemove(id).then((err, client) => {
console.log(client)
if (err) return res.status(500).send(err);
const response = {
msg: "Client removed",
success: true
}
return res.status(200).send(response);
})
})
正如你所看到我试图通过两种方式传递id,所以控制台日志输出:ObjectId("5a8ea050fe07b60eda004c6e")
和5a8ea050fe07b60eda004c6e
,两者都不起作用。我该如何解决这个问题?
答案 0 :(得分:0)
var mongoose = require("mongoose")
const ObjectId = mongoose.Types.ObjectId;
var id = ObjectId("5a8ea050fe07b60eda004c6e")
//for your case
let id2 = ObjectId(String(req.body.id))
console.log(typeof id) //it will show object
您正在尝试让id
看起来像ObjectId
。如果您要检查typeof id
它将是字符串而不是对象,