mongodb - 按对象 ID 删除 angular 2 和 mongodb

标签 mongodb angular

我正在尝试从我的网络应用程序的评论部分删除帖子。 Mongodb 传递了一个 objectId,但我无法从我的 Angular 2 前端获取它。默认情况下,ObjectId 作为 _id 传递,所以在我的前端,我在我的删除函数中调用 Post._id 并传递所有这些信息

enter image description here

我真正想要的是数据库本身给出的唯一的ObjectId,看起来像这样

enter image description here

我怎样才能在我的应用程序的前端获得这个值?我的项目的所有代码都在 github 上 here我的 UI 和 API 后端。感谢您的帮助!

repo 中的相关文件

  • UI/src/app/components - PostData.Service.ts
  • UI/src/app/components -postRand.component.ts
  • UI/src/app/components/models - Post.ts

  • API/src/controllers - PostAPIController.cs

  • API/src/models - Post.cs
  • API/src/models - DataAccess.cs

API 运行

enter image description here

我相信我需要在 api 层中进行此修复,因为它将我的 _id 作为对象而不是字符串传递...这只是我的猜测,我不确定如何做到这一点。

最佳答案

我找到了解决问题的方法....

  1. 我不得不返回到我的模型并通过解析将我的 ObjectId 转换为字符串

    [BsonRepresentation(BsonType.ObjectId)] 公共(public)字符串 ID { 得到 { 返回 Convert.ToString(_id); } 设置 { _id = MongoDB.Bson.ObjectId.Parse(值); } }

  2. 然后我将我的新 Id 字段添加到我所有的 http 调用中,改变了我通过 ObjectId 调用的位置,现在调用我的新字符串值 Id

  3. 现在,当我运行我的 Api 时,会得到我对象的实际 ID enter image description here

  4. 最后,我将新生成的 Id 字段添加到我的前端,将删除函数中的旧 objectId 值替换为新的 Id。

我的git项目中的所有代码都已更新,相关文档请参见问题引用的文件。

关于mongodb - 按对象 ID 删除 angular 2 和 mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40939128/

相关文章:

Angular 2 帖子 : Not sending 'content-type: application/json' to server

javascript - 添加/更新元标记在 angular5 中不起作用

ASP.NET Core Angular 模板 : app. module.client 与 app.module.server

java - 是什么原因造成的 (MongoDB) : PropertyReferenceException: No property findAll found for type

node.js - 使用 $match 和 $lookup 检索数据

javascript - FormControl 的 setValue 实际上有多快?

Angular 2 Router Guards订单

java - 无法从 mongodb 获取日期并将其与当前日期进行比较

javascript - 匹配多个字母的准确出现次数

MongoDB MapReduce——是否有聚合替代方案?