在mongoose中通过id删除

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在mongoose中通过id删除相关的知识,希望对你有一定的参考价值。

我正在努力通过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,都不会工作。我怎么解决这个问题?

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

以上是关于在mongoose中通过id删除的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Node.js 中通过 Mongoose 使用 dot(.) 进行查询以及如何添加空数组

Jasmine (mocha) 嵌套“it”测试

使用 Mongoose 批量删除

应用Mongoose开发MongoDB控制器(controllers)

如何在Android Java中通过按钮的ID使用OnClickListener属性

在 ExtJs 4.1 树面板中通过 id 或 name 查找节点