我正在使用MongoDB Node.js本机驱动程序,并在启用了多个选项的情况下进行了更新操作:
productCollection.update(
{'categories.id': category.id},
{'$set': {
'categories.$.name': category.name,
//...and so on
}},
{multi: true}
);
我希望该馆藏将来会大幅增长,因此更新将影响数百万条记录。在这种情况下,响应时间不是问题,我担心的是操作的未来可伸缩性,特别是峰值内存使用情况并影响数据库中其他操作的性能。
我不确定MongoDB如何处理这种情况,是否最好通过将记录组检索到应用程序中来实现某种“批处理”(使用skip
/ limit
进行分页或_id
/ limit
),然后为每个“批处理”进行批量更新,即使这需要花费更多时间?