我目前正在使用Meteor 1.4.1和Mongo v3.2。
我在Meteor服务器端做一些夜间后台任务(通过调用方法),主要是更新记录。这可能涉及大约100万条记录,可能需要几个小时才能完成。
目前,我在数据记录上有一个标志,在更新完成时设置为true。我的代码看起来像这样:
collection: {completed: boolean, [various other fields]}
var cursor = Collection.find({completed: false});
cursor.forEach(function(record) {
[some work]
Collection.update({_id: record._id},{$set: {completed: true}});
});
我的问题是:
目前我的数据库服务器并没有以容量运行,所以理想情况下我想在晚上启动一些额外的机器并在所有这些机器上完成工作以更快地完成。
我的另一个选择是使用一个额外的查询术语(可能会将另一个术语传递给该方法)并使用它来实质上将记录集划分为每台计算机的一个切片,以便他们不会接收相同的记录。但理想情况下,我希望尽可能避免这种情况。