在mongoose

时间:2018-02-28 07:41:13

标签: node.js mongodb mongoose

我正在努力通过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,两者都不起作用。我该如何解决这个问题?

1 个答案:

答案 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它将是字符串而不是对象