Wie kann ich den abgesicherten Modus mit dem MongoDB C # Treiber verwenden
-
25-09-2019 - |
Frage
Ich fand, dass einige Methoden der offiziellen MongoDB C # Treiber Verwendung SafeMode
und Rückkehr SafeModeResult
. Was ist das SafeMode
und wie ich es verwenden? Es wäre toll, einige Anwendungsfälle zu sehen - z. B. einen Anwendungsfall mit dem RemoveAll
Verfahren eines MongoCollection
Lösung
Safemode ist nur relevant, wenn an die DB zu schreiben.
Für Geschwindigkeit, wenn abgesicherten Modus ausgeschaltet ist und eine Schreiboperation nicht den Treiber nicht auf Pflege warten. Nettoeffekt ist, wird keine Ausnahme ausgelöst, und Sie wissen nicht, dass Sie einen Fehler haben.
gesetzt Safemode zu auf die Fahrer zwingen, für einen Erfolg Bestätigung zu warten, und wenn ein Fehler aufgetreten wird eine Ausnahme ausgelöst.
Mit abgesicherten Modus für Daten, die Sie kümmern sich um (Benutzerkonten, Aufträge, etc.).
Verwenden Sie abgesicherten Modus für Daten nicht, die nicht wesentlich ist (Protokollierung, Nutzungsstatistiken usw.)
MongoDB Standardverhalten ist abgesicherten Modus ausgeschaltet haben.
Andere Tipps
Es gibt verschiedene Level von Safemode, und diese Klasse wird verwendet, um darzustellen diese Ebene. Abgesicherter Modus gilt nur für Operationen, die nicht bereits zurückkehren kann ein Wert (so es gilt nicht für Abfragen oder Befehle). Es gilt für die MongoCollection folgende Methoden: Einfügen, Entfernen, Speichern und aktualisieren.
Der Kern von Safemode ist, dass nach einer Einfügen, Entfernen, Speichern oder Update-Nachricht gesendet wird es anschließend auf den Server durch einen Befehl, so dass die GetLastError Treiber kann, dass der Betrieb überprüfen gelungen. Darüber hinaus bei der Verwendung von Replikatsätzen es möglich ist, zu überprüfen, dass die Informationen haben repliziert zu einem gewissen Mindestanzahl von Sekundär-Server.
Die Safemode-Klasse hat statisch Eigenschaften und Methoden, die Sie lassen einfacher Zugriff auf gemeinsame Modi oder erstellen Ihre eigenen:
* SafeMode.False * SafeMode.True * SafeMode.WaitForReplications(int n)
Der Wert für „n“ enthält die primäre, wollen Sie so typisch n> = 2.
Ich hoffe, das ist genug, um den Zweck der Safemode zu verstehen.
SafeMode
erscheint obsolet.
Das entspricht WriteConcern.Acknowledged auf MongoClientSettings
(in der Regel übergeben zum MongoClient
Konstruktor). Anerkannt ist der Standard WriteConcern in der aktuellen Version des Treibers (2.2.4).
Siehe auch MongoDB Safemode vergleichen zu WriteConcern