在Meteor中,是否有一种方法可以在服务器端对发布的集合进行批量更改?例如,在不将每个单独的记录逐一发送给所有订阅者的情况下,更新/插入数百或数千条记录?
我定期拉取第三方数据,并希望将所有更新或插入作为一个批量更新收集起来,以便所有客户端都能将其作为一个更改包而不是成千上万个小型更新接收到。逐一执行会在我的应用程序中创建一个大瓶颈。
如果Meteor目前不支持此功能,那么我应该直接对Mongo进行更新,然后让Meteor在下一次Mongo轮询时获取它吗?
感谢您的来信,Reio。
我定期拉取第三方数据,并希望将所有更新或插入作为一个批量更新收集起来,以便所有客户端都能将其作为一个更改包而不是成千上万个小型更新接收到。逐一执行会在我的应用程序中创建一个大瓶颈。
如果Meteor目前不支持此功能,那么我应该直接对Mongo进行更新,然后让Meteor在下一次Mongo轮询时获取它吗?
// imagine myChanges array with 1000 items
myChanges.forEach(function(change){
// this will trigger the sync with clients immediately... 1000 times
// currently this will practically hang my server
// i want to gather the changes here instead
MyCollection.update({_id: change.docId}, change);
});
// and trigger the sync here instead
感谢您的来信,Reio。
minimongo
中有类似的未记录功能:beginUpdate()
、endUpdate()
、.pauseObservers()
和.resumeObservers()
,但是在服务器端找不到任何东西。 - hypno2000