无法使用MongoDB Atlas和Next.js删除正确的帖子

vatpfxk5  于 2023-08-04  发布在  Go
关注(0)|答案(1)|浏览(104)

我正在使用MongoDB Atlas和Next.js构建Web应用程序
该应用程序应该有完整的CRUD到职位,到目前为止,创建和更新职位的工作正常。
但我无法让应用程序删除正确的帖子...
以下是我的删除路线:

export const DELETE = async (request, { params }) => {
  console.log("params from single post api (delete)", params);
  try {
    await connectToDB();
    await Post.findOneAndDelete(params.id);
    return new Response("Post deleted successfully", { status: 200 });
  } catch (error) {
    return new Response("Failed to delete the post", { status: 500 });
  }
};

字符串
控制台已记录我要删除的帖子的id
params from single post API(delete){ id:64b10e1f0535aa38a6f4eac9
但是当我点击删除btn后查看DB时,帖子仍然存在。
另一篇文章已被删除。我想知道为什么...
我用过findOneAndDelete()findOneAndRemove(),没看出区别。
下面是完整的代码:https://github.com/gongtzuuuu/meloverse/blob/main/app/api/post/%5Bid%5D/route.js
任何建议将不胜感激!

cgvd09ve

cgvd09ve1#

findOneAndDelete方法需要一个查询对象作为其参数,而不仅仅是帖子的ID。在代码中,您将params.id直接传递给findOneAndDelete。

const query = { _id: ObjectId(params.id) }
         //or
    const query = { _id: params.id } // if you are sure that id is a string.
    await Post.findOneAndDelete(query)

字符串

相关问题