Ich habe ein Szenario, wo die Liste der sagen 1000 Mitarbeiter (Beispiel unten), wo ihr Kontostand an jedem Monat Ende aktualisiert wird, wo das Gleichgewicht der einzelnen Mitarbeiter unterschiedlich sein kann.Feder Daten MongoDB Aufrechterhaltung der Datenintegrität in Bulk-Update
{
_id:1
name:"John"
balance:40
},
Nun, was wäre die bestmögliche Praxis, um dasselbe zu tun. Durchführen sie eins nach dem anderen
for (Employee employee : employeeList) {
employee.update();
}
oder
dropAll employees where id in (All employees ids)
mongoOperations.insert(employeeList, Employee.class);
oder dritte Ansatz könnte
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).
sein oder ist ihr eine andere Möglichkeit, die maximale Erfolgschancen der Datenbank Datenintegrität garantieren können auch gut aus Leistungsperspektive.
Ich stimmte Ihrem zweiten Punkt hinsichtlich der Skalierbarkeit zu. Das Problem mit dem ersten Ansatz besteht darin, dass atomare Updates die Aktualisierung nur für ein einzelnes Dokument garantieren, oder noch funktionieren würde, wenn ich den gleichen Wert des Saldos für mehrere Objekte aktualisieren muss. Wenn jedoch unterschiedliche Mitarbeiter unterschiedliche Saldos haben, können wir sie nicht in einer einzelnen Abfrage angeben führt zur Ausführung mehrerer Abfragen, wodurch die Atomaritätsgarantie aufgehoben wird. – tarunkumar