在new_results中重复_id

时间:2015-06-16 17:15:56

标签: meteor angular-meteor

我有一个流星集合,我希望允许用户一次编辑多个项目,然后单击“保存”按钮以更新所有项目。

这是我的收藏:

EmpresasUsuarias = new Mongo.Collection("empresasUsuarias");

我在客户端执行此操作以将其纳入$ scope:

$scope.empresasUsuarias = $meteor.collection(EmpresasUsuarias, false);

事情是:当用户添加一些项目并单击“保存”时,我收集(仅)数组中的新项目并通过meteor方法发送到服务器。在服务器中,该方法在(mongo)集合中插入项目。一切都很好,直到流程返回客户端。在那里,该集合接收“返回”所有那些新记录 再次 并且它们重复,并且错误出现在(客户端)控制台中:

Duplicate _id in new_results

我认为正在发生的是订阅/发布机制在插入项目时激活并将其发送回客户端;但是它们已经存在并且Meteor认为它们是重复的(即:Meteor不会同步项目,但会重复它们并完成错误消息)。

我必须说我正在为客户端中的每条新记录分配_id,所以当它们到达服务器时,它们已经有一个_id。

我在这里做错了什么?为什么Meteor认为这些项目是不同的,并说它们是重复的?

非常感谢提前帮助和再见......

1 个答案:

答案 0 :(得分:1)

嗯,这就是我解决问题的方法。我在保存之前停止了我的收藏,并在保存后重新进行了重新设置

  1. 将用户编辑保存在数组中的$scope
  2. 停止收集:$scope.MyCollection.stop()
  3. $scope.MyCollection.length = 0;
  4. 调用服务器(Meteor)方法以保存编辑(通过编辑传递数组)
  5. 订阅流星集(再次)
  6. $scope.MyCollection = $meteor.collection(MyCollection, false)
  7. 我一直在客户端获取_id s(用于新文档)。我不知道我是否正确地做到了,只知道它显然是有效的。