Collections Meteor'movedTo'无法按预期工作

Collections Meteor'movedTo'无法按预期工作,collections,cursor,meteor,observers,Collections,Cursor,Meteor,Observers,我刚刚意识到,当您观察某个光标上的移动到事件时,该事件只会针对实际更改其在结果集中的相对位置的文档触发,因此不仅仅是其索引。例如,如果生成的文档集首先等于[1,2,3],然后变为[3,1,2],则事件将仅针对第三个文档触发,而不是所有文档。虽然从效率的角度来看,这听起来很合理,但文档一点也不清楚(看): 移动到(文档、从索引到索引、之前) 文档将其在结果集中的位置从从索引更改为到索引 (位于id为的文档之前,)。其当前内容是文档 对我来说,“从一个索引到另一个索引,改变了它在结果集中的位置”听起

我刚刚意识到,当您观察某个
光标上的
移动到
事件时,该事件只会针对实际更改其在结果集中的相对位置的文档触发,因此不仅仅是其索引。例如,如果生成的文档集首先等于
[1,2,3]
,然后变为
[3,1,2]
,则事件将仅针对第三个文档触发,而不是所有文档。虽然从效率的角度来看,这听起来很合理,但文档一点也不清楚(看):

移动到(文档、从索引到索引、之前)

文档将其在结果集中的位置从
从索引
更改为
到索引
(位于id为
的文档之前,
)。其当前内容是文档

对我来说,“从一个索引到另一个索引,改变了它在结果集中的位置”听起来更像是三个人都改变了位置,所以事实上:

  • 一个是从索引
    0
    到索引
    1
  • 两个从索引
    1
    转到索引
    2
    ,然后
  • 三个从索引
    2
    0

我想要实现的是观察
光标
,并知道每个文档的
索引
是否更改。虽然我对如何实现这一点有一些粗略的想法,但我想知道是否有一种简单的(最优的?)和“流星友好”的方法来解决这个问题。

这种行为实际上不仅从性能的角度讲是非常有意义的。这样想吧:

使用
observe
方法时,您希望收到集合发生的所有更改的通知(无论是在服务器上还是在minimongo中)。因此,您收到的每个回调都是修改集合的单个实例。当您通过将其中一个对象移动到另一个位置来更改对象的顺序时,您将更改集合一次,因此您只希望收到此事件的一个回调

你不想在一次事件中被通知42次



我认为让所有移动对象的通知成倍增加的最简单方法是在回调中手动循环它们。当项目从位置A移动到位置B时,您知道A和B之间的所有对象也已移动。因此,如果您需要调整每个参数,只需在整个列表中从A到B的循环中进行调整。

我完全同意。。。但我仍然认为文件在这里有点误导:/