sql >> Database >  >> NoSQL >> MongoDB

MongoError:deze MongoDB-implementatie biedt geen ondersteuning voor herschrijfbare schrijfbewerkingen. Voeg retryWrites=false toe aan uw verbindingsreeks

Zoals gesuggereerd in het geaccepteerde antwoord, moet uw lokale server worden uitgevoerd als een replicaset om transacties uit te kunnen voeren, in tegenstelling tot een zelfstandige server.

Naast de voorgestelde oplossing kunt u echter eenvoudig uw standalone lokale db converteren naar een replicaset zonder een tool van derden te gebruiken , door de instructies te volgen in MongoDB-documentatie , samengevat als volgt:

  1. Stop uw zelfstandige mongod-instantie en start deze opnieuw met de replSet argument.
mongod --port 27017 --dbpath /srv/mongodb/db0 --replSet rs0 --bind_ip localhost
  1. Maak verbinding met uw instantie met een mongo shell, en start de nieuwe Replica Set.
rs.initiate()

Nu zou u een Replica Set moeten hebben in plaats van een Standalone Mongodb-server, waar u transacties in uw lokale omgeving kunt uitvoeren om meerdere documenten tegelijk bij te werken!

Vergeet niet om de replSet op te nemen argument elke keer dat u de server wilt starten, anders wordt deze gestart als standalone. Ik gebruik gewoon hetzelfde commando als in stap 1 om het opnieuw uit te voeren.

U kunt ook een geheel nieuwe replicaset implementeren voor een testomgeving door deze andere instructies te volgen in MongoDB-documentatie.



  1. Mongoose:wat zijn de verschillen tussen Model.create en Collection.insert

  2. ReplicaSetId-conflict tijdens het toevoegen van node MongoDB

  3. Hoe afhankelijke gegevens in Node/MongoDB te seeden?

  4. MongoDB - Equivalent van LEFT JOIN waar één verzameling niet bestaat