MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoError :ce déploiement MongoDB ne prend pas en charge les écritures réessayables. Veuillez ajouter retryWrites=false à votre chaîne de connexion

Comme suggéré dans la réponse acceptée, vous devez exécuter votre serveur local en tant que jeu de répliques pour pouvoir effectuer des transactions, par opposition à un serveur autonome.

Cependant, en plus de la solution proposée, vous pouvez facilement convertir votre base de données locale autonome en un ensemble de répliques sans utiliser d'outil tiers , en suivant les instructions de la documentation MongoDB , résumé comme suit :

  1. Arrêtez votre instance mongod autonome et redémarrez-la avec le replSet arguments.
mongod --port 27017 --dbpath /srv/mongodb/db0 --replSet rs0 --bind_ip localhost
  1. Connectez-vous à votre instance avec un mongo shell et lancez le nouvel ensemble de répliques.
rs.initiate()

Vous devriez maintenant avoir un ensemble de répliques au lieu d'un serveur mongodb autonome, où vous pouvez effectuer des transactions sur votre environnement local pour mettre à jour plusieurs documents à la fois !

N'oubliez pas pour inclure le replSet argument chaque fois que vous voulez démarrer le serveur, sinon il sera démarré en mode autonome. J'utilise simplement la même commande qu'à l'étape 1 pour l'exécuter à nouveau.

Alternativement, vous pouvez déployer un nouvel ensemble de répliques à partir de zéro pour l'environnement de test en suivant ces autres instructions dans Documentation MongoDB.