我正在尝试从我的网络应用程序的评论部分删除帖子。 Mongodb 传递了一个 objectId,但我无法从我的 Angular 2 前端获取它。默认情况下,ObjectId 作为 _id
传递,所以在我的前端,我在我的删除函数中调用 Post._id
并传递所有这些信息
我真正想要的是数据库本身给出的唯一的ObjectId,看起来像这样
我怎样才能在我的应用程序的前端获得这个值?我的项目的所有代码都在 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 运行
我相信我需要在 api 层中进行此修复,因为它将我的 _id
作为对象而不是字符串传递...这只是我的猜测,我不确定如何做到这一点。
最佳答案
我找到了解决问题的方法....
我不得不返回到我的模型并通过解析将我的 ObjectId 转换为字符串
[BsonRepresentation(BsonType.ObjectId)] 公共(public)字符串 ID { 得到 { 返回 Convert.ToString(_id); } 设置 { _id = MongoDB.Bson.ObjectId.Parse(值); } }
然后我将我的新 Id 字段添加到我所有的 http 调用中,改变了我通过 ObjectId 调用的位置,现在调用我的新字符串值 Id
最后,我将新生成的 Id 字段添加到我的前端,将删除函数中的旧 objectId 值替换为新的 Id。
我的git项目中的所有代码都已更新,相关文档请参见问题引用的文件。
关于mongodb - 按对象 ID 删除 angular 2 和 mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40939128/