我正在尝试从我的网络应用中的评论部分删除帖子。 Mongodb传递了一个objectId,但我无法从我的2角前端获取它。默认情况下,ObjectId作为_id
传递,所以在我的前端我在我的删除功能中调用Post._id
并通过所有这些信息
我真正想要的是数据库本身给出的唯一ObjectId,看起来像这样
如何在应用程序的前端获取此值?我的github项目的所有代码都位于here,包含我的UI和API后端。谢谢你的帮助!
来自回购的相关文件
UI / src / app / components / models - Post.ts
API / src / controllers - PostAPIController.cs
API正在运行
我相信我需要在api层中进行此修复,因为它将我的_id
作为对象传递而不是字符串......这只是我的猜测,我不知道该怎么做此
答案 0 :(得分:1)
我发现了如何解决我的问题......
我必须回到我的模型并通过解析它将我的ObjectId转换为字符串
[BsonRepresentation(BsonType.ObjectId)]
public string Id
{
get { return Convert.ToString(_id); }
set { _id = MongoDB.Bson.ObjectId.Parse(value); }
}
然后我将我的新Id字段添加到我的所有http调用中,更改了我通过ObjectId调用的位置,现在调用我的新字符串值Id
最后,我将新生成的Id字段添加到我的前端,用新Id替换删除函数中的旧objectId值。
我的git项目中的所有代码都已更新,请参阅相关文档中引用的文件。
答案 1 :(得分:0)
审核后,您似乎试图通过对象ID字符串而不是对象ID对象来删除对象。
在PostAPIController.cs
中第74行
objds.Remove(post._id);
这是寻找一个字符串值匹配的对象。
很确定它应该像这样
objds.Remove(ObjectId.Parse(post._id))
这将构造一个对象id以匹配删除