我有一個情況,其中說1000名員工(示例如下)的清單,其平衡在每個月末更新,其中每個員工的餘額可能不同。spring數據MongoDB在批量更新中維護數據完整性
{
_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).
或者是他們能夠保證數據庫的數據完整性取得最大的成功機會,以及其他任何方式從性能角度來看是好的
我同意你關於可伸縮性的第二點。第一種方法的問題是原子更新保證只更新單個文檔,或者如果我需要將相同的餘額值更新爲多個對象,它仍然可以正常工作,但是如果不同的員工有不同的餘額,我們無法在單個查詢中指定它們導致執行多個查詢,從而取消原子性的保證。 – tarunkumar