sql >> Database >  >> NoSQL >> MongoDB

MongoDB-gegevensintegriteit

Ik betwijfel of er iets is dat waarborgt gegevensintegriteit afgezien van de genoemde 2-fasen commit. Tenminste tot v4 aangekondigd .

Er zijn weinig dingen om de kans op verkeerde tellingen te minimaliseren. Combineer invoegen en bijwerken in één bulk . Het verkleint de kans dat een van de bewerkingen mislukt aan de kant van de applicatie, omdat het een enkel verzoek is.

Controleer vervolgens of nInserted === 1 , en nModified === 1 . Probeer anders een herberekeningstaak voor de opgegeven post-ID opnieuw of plaats deze in de wachtrij.

Voor nieuwe pogingen is het essentieel om retryable writes ingeschakeld, aangezien u $inc . gaat gebruiken op berichten, wat vrij ver verwijderd is van een idempotente werking.

Een andere optie is om transactieloos toe te passen benadering - een soort combinatie van "Voer script elke periode uit om commentsNumber bij te werken" en "Geen om commentsNumber op te slaan". U moet de tijdstempels van de laatste herberekeningstaak bijhouden en nieuwe opmerkingen sinds de datum tellen.



  1. Hoe verbinding maken met MongoDB 3.2 in Java met gebruikersnaam en wachtwoord?

  2. Is het een slechte gewoonte om een ​​Mongo ObjectId als gebruikers-ID te gebruiken?

  3. Gegevens importeren op MongoDB met Docker-Compose

  4. Redis-benchmarking voor hget- en hset-opdrachten