我有一个场景,其中有 1000 名员工的列表(下面的示例),他们的余额在每个月末更新,每个员工的余额可能不同。
{
_id:1
name:"John"
balance:40
},
现在执行相同操作的最佳实践是什么。一项一项地执行
for (Employee employee : employeeList) {
employee.update();
}
或
dropAll employees where id in (All employees ids)
mongoOperations.insert(employeeList, Employee.class);
或者第三种方法可能是
Load all employee records.
Insert employee records to a new collection say employee_temp.
Drop old collection (employee).
Rename newly inserted collection as old one (employee).
或者他们的任何其他方式可以保证数据库数据完整性的最大成功机会,并且从性能角度来看也很好。
如果批量更新过程成功完成,我们将删除检查点集合,如果失败,我们将重新执行对新值与员工记录不匹配的所有记录的更新。
但是,如果您的设计允许,最好选择混合数据库,其中将事务数据保存在某些关系数据库中,其余部分则依赖于 mongo。