sql >> Database >  >> NoSQL >> MongoDB

Incrementeel veld naar bestaande verzameling

Nou, met behulp van de link die je noemde , ik gebruik liever de aanpak voor het verzamelen van balies .

De aanpak van het verzamelen van tellers heeft enkele nadelen, waaronder:

  • Het genereert altijd multiples-verzoek (twee):één om het volgnummer te krijgen, een andere om de invoeging te doen met behulp van de id die je via de reeks hebt gekregen,
  • Als je sharding-functies van mongodb gebruikt, kan een document dat verantwoordelijk is voor het opslaan van een tellerstatus veel worden gebruikt, en elke keer dat het dezelfde server bereikt.

Het zou echter geschikt moeten zijn voor de meeste toepassingen.

De aanpak die u noemde ("de optimistische lus" ) zou IMO niet moeten breken, en ik denk niet waarom je er een probleem mee hebt. Ik zou het echter niet aanraden. Wat gebeurt er als je de code op meerdere mongo-clients uitvoert, als er een veel latentie heeft en anderen ID's blijven gebruiken? Ik zou dit soort problemen niet willen tegenkomen... Verder zijn er minimaal twee verzoeken per succesvolle operatie, maar geen maximum aantal nieuwe pogingen voordat een succes is bereikt...




  1. MongoDB best practice voor verwijzingen

  2. Mongo-databases synchroniseren op verschillende servers

  3. Gegevensmigraties met Redis

  4. MongoDB $arrayElemAt