流星批量更新

时间:2012-06-18 15:49:51

标签: mongodb meteor

我正在使用流星。我想知道在DOM更新之前是否有一种简便的方法来进行批量更新。

例如我想更新一些记录,多个(一次性全部):

Collection.update(id1,{..})
Collection.update(id2,{..})
Collection.update(id3,{..})

问题是有3个项目是单独更新的。因此,当我的案例中的DOM被重新绘制3次而不是一次(所有3个更新的记录)。

有没有办法推迟ui更新,直到所有这些更新?

2 个答案:

答案 0 :(得分:23)

Mongo的更新可以一次修改多个文档。只需给它一个匹配多个文档的选择器,然后设置multi选项。在您的情况下,这只是一个ID列表,但您可以使用任何选择器。

Collection.update({_id: {$in: [id1, id2, id3]}}, {...}, {multi:true});

这将运行单个数据库更新和单个重绘。

答案 1 :(得分:-1)

在服务器上执行它们,这样他们可能同步完成,这样他们就不太可能在客户端上导致多个DOM更新。

请参阅first two and last interesting code bits,其中介绍了如何保护客户免受数据库的干扰,以及如何在服务器上定义方法并从客户端调用它们。