Comment puis-je utiliser le mode sans échec avec le pilote MongoDB C #
-
25-09-2019 - |
Question
Je trouve que certaines méthodes de l'utilisation officielle MongoDB C # pilote SafeMode
et retour SafeModeResult
. Quel est ce SafeMode
et comment puis-je utiliser? Ce serait génial de voir des cas d'utilisation -. Par exemple, un cas d'utilisation avec la méthode RemoveAll
d'un MongoCollection
La solution
Safemode est pertinent que lors de l'écriture à la DB.
Pour la vitesse, si safemode est désactivée et une opération d'écriture échoue, le pilote n'attendez pas aux soins. effet net ne fait pas exception est jeté et vous ne savez pas que vous avez une erreur.
Safemode activée forcera le conducteur à attendre une confirmation de la réussite, et si une erreur est survenue jetteront une exception.
Utilisez safemode pour les données que vous aimez (comptes utilisateurs, commandes, etc.).
Ne pas utiliser safemode pour les données qui ne sont pas essentielles (exploitation forestière, statistiques d'utilisation, etc.)
Le comportement par défaut de MongoDB est de safemode avoir éteint.
Autres conseils
De :
Il existe différents niveaux de SafeMode, et cette classe est utilisée pour représenter ces niveaux. SafeMode applique uniquement aux des opérations qui ne reviennent pas déjà la valeur (il ne s'applique pas aux questions ou commandes). Il applique à la suivant les méthodes de MongoCollection: Insérer, Supprimer, Enregistrer et mise à jour.
L'essentiel de SafeMode est que, après un Insérer, Supprimer, Enregistrer ou un message de mise à jour est envoyé au serveur, il est suivi par une commande de sorte que le GetLastError conducteur peut vérifier que l'opération réussi. En outre, lors de l'utilisation réplique fixe, il est possible de vérifier que l'information a été répliquées sur un nombre minimum de serveurs secondaires.
La classe SafeMode a statique propriétés et méthodes qui vous permettent accéder facilement à des modes communs ou créer votre propre:
* SafeMode.False * SafeMode.True * SafeMode.WaitForReplications(int n)
La valeur de « n » inclut le primaire, donc généralement vous voulez n> = 2.
J'espère que cela suffit pour comprendre le but de SafeMode.
SafeMode
semble être obsolète.
L'équivalent est WriteConcern.Acknowledged sur MongoClientSettings
(généralement adopté au constructeur de MongoClient
). Est le WriteConcern Pris en compte par défaut dans la version actuelle du pilote (2.2.4).
Voir aussi MongoDB SafeMode comparer à WriteConcern