Ich fand, dass einige Methoden des offiziellen MongoDB C# -Treibers SafeMode
verwenden und SafeModeResult
zurückgeben. Was ist das SafeMode
und wie benutze ich es? Es wäre schön, einige Anwendungsfälle zu sehen - zum Beispiel einen Anwendungsfall mit der RemoveAll
Methode einer MongoCollection
.Wie verwende ich SafeMode mit dem MongoDB C# -Treiber
Antwort
Safemode ist nur beim Schreiben in die Datenbank relevant.
Wenn der Safemode ausgeschaltet ist und eine Schreiboperation fehlschlägt, wartet der Treiber nicht darauf, sich um die Geschwindigkeit zu kümmern. Net-Effekt wird keine Ausnahme geworfen und Sie wissen nicht, dass Sie einen Fehler haben.
Wenn der Safemode auf on gesetzt ist, wird der Treiber auf eine Erfolgsbestätigung warten, und wenn ein Fehler auftrat, wird eine Ausnahme ausgelöst.
Verwenden Sie den Safemode für Daten, die Ihnen wichtig sind (Benutzerkonten, Bestellungen usw.).
Verwenden Sie abgesicherten Modus für Daten nicht, die nicht wesentlich (Protokollierung, Nutzungsstatistiken usw.)
MongoDB Standardverhalten ist abgesicherten Modus ausgeschaltet haben.
Von documentation:
Es gibt verschiedene Level von Safemode, und diese Klasse verwendet wird diese Werte zu repräsentieren. SafeMode gilt nur für Operationen, die nicht bereits einen Wert zurückgeben (gilt also nicht für Abfragen oder Befehle). Es gilt für die folgenden MongoCollection-Methoden: Einfügen, Entfernen, Speichern und Aktualisieren.
Der Kern von Safemode ist, dass nach einer Einfügen, Löschen, Speichern oder Aktualisieren Nachricht an den Server gesendet wird von einem GetLastError Befehl gefolgt wird, so dass die Treiber überprüfen kann, dass der Betrieb gelungen. Wenn Replikatsätze verwendet werden, ist es außerdem möglich, zu verifizieren, dass die Informationen auf eine Mindestanzahl von Sekundärservern repliziert wurden.
Die Safemode-Klasse hat statische Eigenschaften und Methoden, die Sie leicht gemeinsamen Modi zugreifen lassen oder erstellen Ihre eigenen:
* SafeMode.False * SafeMode.True * SafeMode.WaitForReplications(int n)
Der Wert für „n“ umfasst die primäre, so der Regel möchten Sie n > = 2.
Ich hoffe, dies ist genug, um den Zweck von SafeMode zu verstehen.
SafeMode
scheint veraltet zu sein.
Das Äquivalent ist WriteConcern.Acknowledged auf MongoClientSettings
(in der Regel an den MongoClient
Konstruktor übergeben). Bestätigt ist das Standard WriteConcern in der aktuellen Version des Treibers (2.2.4).
Siehe auch MongoDb SafeMode compare to WriteConcern
- 1. MongoDB: Welcher C-Treiber?
- 2. Wie verwende ich AsQueryable-Methode asynchron mit MongoDb C# -Treiber 2.1?
- 3. Serverseitige Projektion mit MongoDB C# -Treiber 2.0
- 4. MongoDb SafeMode im Vergleich zu WriteConcern
- 5. Debug MongoDB Abfragen mit dem C# -Treiber v2 API
- 6. Wörterbuch in MongoDB mit C# -Treiber einfügen
- 7. MongoDB C# offizielle Treiber Massenaktualisierung
- 8. Shutdown MongoDB-Server mit C# Treiber 2.2.3
- 9. MongoDB C# Treiber Serialisierung mit dynamischen Objekten
- 10. wie Count-Vorgang nach dem Finden mit Mongodb Java-Treiber
- 11. C# MongoDB Treiber Probleme (NORM)
- 12. MongoDB C# Treiber und Threadsicherheit
- 13. MongoDB-Aggregationscursor mit NodeJS-Treiber
- 14. MongoDB 3.2 C++ - Treiber mit $ exists
- 15. C# MongoDB-Treiber stark typisierte Filterverwendung
- 16. Ergebnisse von 2.0 erhalten MongoDb C# -Treiber
- 17. BSON-Serialisierung in C# -Treiber für MongoDB
- 18. Wie mongodb Array in Vektor mit C++ Treiber speichern?
- 19. Java-Treiber MongoDB updateone
- 20. Erstellen von MongoDB C-Treiber in Windows
- 21. MongoDB C# Treiber mehrere Feld Abfrage
- 22. Update-Feld in Array mongodb C# Treiber
- 23. MongoDB C# Treiber Einfügen dynamische Entität
- 24. MongoDB C# -Treiber - Felder bei Bindung ignorieren
- 25. MongoDB Java Treiber-Array
- 26. find_one MongoDB Ruby-Treiber
- 27. MongoDB C# -Treiber 2.0 InsertManyAsync vs BulkWriteAsync
- 28. Multi-Feld-Abfragen mit C# -Treiber für MongoDB
- 29. MongoDB $ ersten ungestützt Fehler C# Treiber
- 30. findOne NodeJS MongoDB-Treiber
danken Ihnen für usecases;) – Edward83