sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB dataintegritet

Jag tvivlar på att det finns något som kan garanti dataintegritet förutom den nämnda 2-fas commit. Åtminstone tills tillkännagav v4 a> .

Det finns få saker för att minimera risken för fel. Kombinera infoga och uppdatera till en enda bulk . Det kommer att minska risken för att en av operationerna misslyckas på applikationssidan, eftersom det är en enda begäran.

Kontrollera sedan om nInserted === 1 , och nModified === 1 . Annars försök igen eller ställ ett omberäkningsjobb i kö för det givna post-id:t.

För omförsök är det viktigt att ha återförsökbara skrivningar aktiverat, eftersom du ska använda $inc på inlägg, vilket är ganska långt ifrån idempotent drift.

Ett annat alternativ är att använda transactionless tillvägagångssätt - en slags kombination av "Kör skript varje tidsperiod för att uppdatera commentsNumber" och "Inte lagra commentsNumber alls". Du måste spara tidsstämplar för det senaste omberäkningsjobbet och räkna nya kommentarer sedan datumet.



  1. hur kan jag skicka infinity till redis från python?

  2. hur indexerar man ett användarnamn i mongo med skiftlägesokänsligt?

  3. Inget svar efter anslutning från selleri till redis via ssl

  4. MongoDB cursor.count()