mongoose 用于删除的API

wrrgggsh  于 2023-06-30  发布在  Go
关注(0)|答案(1)|浏览(122)
const deleteContact=asyncHandler(async(req,res)=>{

    const contact=await Contact.findById(req.params.id);

    if(!contact){
        res.status(404);
        throw new Error("Contact Not foud");
    }

    await Contact.remove();
    res.status(200).json();
});

我试图写删除联系人的终点,但我无法使用上述查询删除。

798qvoo8

798qvoo81#

根据mongoose v7.3.1 document
MongoDB驱动程序的remove()函数被弃用,取而代之的是deleteOne()和deleteMany()。这是为了符合MongoDB CRUD规范,该规范旨在为所有MongoDB驱动程序的CRUD操作提供一致的API。
因此,使用deleteOne代替remove,如下所示:

await Contact.deleteOne({ _id: req.params.id });

更新代码:

const deleteContact = asyncHandler(async(req,res) => {
    const contact=await Contact.findById(req.params.id);
    if(!contact){
        res.status(404);
        throw new Error("Contact Not found");
    }
    await Contact.deleteOne({ _id: req.params.id });
    res.status(200).json();
});

相关问题