Angularjs 如何在前端对象Mongo DB中存储主键

Angularjs 如何在前端对象Mongo DB中存储主键,angularjs,mongodb,Angularjs,Mongodb,我正在使用meteor、angularJS和mongodb开发一个web应用程序。我正在创建一个消息功能,允许用户向视频添加评论。到目前为止,我只实现了在我的视图中创建和显示消息。用户可以创建消息,然后将这些消息保存到mongo数据库,并在加载页面时检索这些消息 但是,现在我想添加删除消息的功能。到目前为止,我只是从db中检索注释字符串,并将其显示在ng repeat指令中。我希望能够单击显示的消息(使用前端上的按钮),并将其从UI和db中删除。现在,我有了代码来检索前端存储消息的对象,并将其从

我正在使用meteor、angularJS和mongodb开发一个web应用程序。我正在创建一个消息功能,允许用户向视频添加评论。到目前为止,我只实现了在我的视图中创建和显示消息。用户可以创建消息,然后将这些消息保存到mongo数据库,并在加载页面时检索这些消息

但是,现在我想添加删除消息的功能。到目前为止,我只是从db中检索注释字符串,并将其显示在ng repeat指令中。我希望能够单击显示的消息(使用前端上的按钮),并将其从UI和db中删除。现在,我有了代码来检索前端存储消息的对象,并将其从视图中删除

但是,我无法在数据库中获取此消息的主键。因此,消息永远不会从数据库中删除,并且在重新加载页面时会不断重新出现


我对安全性或mongo db不太了解,那么,在前端存储/检索主键最安全的方法是什么?目标是能够在DOM中单击消息,将其从DOM中删除,并拥有主键,以便也可以将其从数据库中删除。

我从未使用过Angular,因此我不确定它到底是如何处理此问题的,但在Blaze中,无论何时使用
{{each}
的上下文对于数据库中的每个重复对象都是唯一的

因此,在Blaze中,如果您在一组对象(注释)上进行迭代,则在注释模板中为
delete
按钮分配一个事件侦听器,该按钮调用
meteor方法,该方法使用
this.\u id
作为主键。然后,当您单击delete按钮时,它会将对象的ID传递给该方法。这就是DB知道要删除哪个对象的方式


Angular将有一个类似的系统。他们正在从
ng repeat
块中删除项目。应该有帮助

那么,你打算把钥匙放在前端吗。。。目的何在?你实际上打算做什么。你在这里谈论一些不同的事情。你的问题到底是什么?对不起,如果不清楚的话。基本上,当我在前端单击消息时,我不知道如何获取它的主键。因此,我不知道如何将其从数据库中删除。如果您发布一些到目前为止所做工作的代码,我可以更好地为您指出正确的方向。到目前为止,我可以建议您:从后端加载带有两个值(至少)的注释,文本(或任何您称之为文本)和注释id。然后实现一个函数(前端),该函数调用一个服务(后端),该服务删除给定id的注释(同样,当服务回调返回ok时,从后端删除注释)。当页面再次加载时,注释将不存在。好的,我正在考虑将id和注释字符串一起存储在前端对象中。我相信这就是你的建议?我只是想确保这不会是一个严重的安全问题,这正是我建议的。关于你的安全问题……这取决于你如何存储数据。如果您将其作为字符串化json保存到localstorage,如
“[“comments”:“{label:“bla”,“id:”3}”]”
,这将是一个安全风险!因为如果您的本地存储被破坏,您的评论也会被破坏。但是如果你把这些数据保存在js变量中,比如“{id:3,l:'bla'}”,即使你的js被缩小了..嗯…如果这些信息存在风险,那么就值得分析了。无论如何,当谈到安全性时,值得一提的是,我们总是在“价值”和“分解成本”之间寻求平衡