Come posso utilizzare modalità provvisoria con il # conducente MongoDB C
-
25-09-2019 - |
Domanda
ho scoperto che alcuni metodi di MongoDB C # uso conducente SafeMode
e ritorno SafeModeResult
ufficiale. Che cosa è questo SafeMode
e come si usa? Sarebbe bello vedere alcuni casi di utilizzo -., Ad esempio, un caso d'uso con il metodo RemoveAll
di un MongoCollection
Soluzione
Safemode è rilevante solo quando si scrive al db.
Per la velocità, se safemode è spento e un'operazione di scrittura non riesce il driver non attendere a lungo per la cura. Effetto netto non fa eccezione viene buttato e non sai di avere un errore.
Safemode impostato sul costringerà al conducente di attendere una conferma il successo, e se si è verificato un errore un'eccezione.
Usa safemode per i dati che ti interessano (account utente, ordini, ecc).
Non utilizzare safemode per i dati che non è essenziale (logging, statistiche di utilizzo, ecc)
il comportamento predefinito di MongoDB è quella di avere safemode off.
Altri suggerimenti
Ci sono vari livelli di SafeMode, e questa classe viene utilizzata per rappresentare quei livelli. SafeMode vale solo per operazioni che non hanno già restituiscono un il valore (in modo che non si applica alle query o comandi). Essa si applica al seguenti metodi MongoCollection: Inserire, rimuovere, salvare e aggiornare.
Il succo di SafeMode è che dopo un Inserire, rimuovere, Salva o un messaggio di aggiornamento viene inviato al server è seguita da un comando GetLastError così la conducente può verificare che l'operazione successo. Inoltre, quando si utilizza set di repliche è possibile verificare che le informazioni sono state replicati in un numero minimo di server secondari.
La classe SafeMode ha static proprietà e metodi che consentono accedere facilmente modi comuni o creare il proprio:
* SafeMode.False * SafeMode.True * SafeMode.WaitForReplications(int n)
Il valore per "n" comprende la primaria, così tipicamente si desidera n> = 2.
Spero che questo è sufficiente per capire lo scopo della modalità provvisoria.
SafeMode
sembra essere obsoleta.
L'equivalente è WriteConcern.Acknowledged su MongoClientSettings
(in genere superato al costruttore MongoClient
). Riconosciuto è il WriteConcern di default nella versione corrente del driver (2.2.4).
Vedi anche MongoDb SafeMode confronta con WriteConcern