MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Integrità dei dati MongoDB

Dubito che ci sia qualcosa che possa garantire integrità dei dati a parte il citato commit in 2 fasi. Almeno fino a quando annunciato v4 .

Ci sono alcune cose per ridurre al minimo le possibilità di ottenere conteggi errati. Combina inserimento e aggiornamento in un unico in blocco . Ridurrà le possibilità che una delle operazioni abbia esito negativo sul lato applicazione, poiché si tratta di una singola richiesta.

Quindi controlla se nInserted === 1 e nModified === 1 . In caso contrario, riprova o accoda un processo di ricalcolo per l'ID post specificato.

Per i nuovi tentativi è essenziale disporre di scritture retryable abilitato, poiché utilizzerai $inc sui post, che è abbastanza lontano da un'operazione idempotente.

Un'altra opzione è applicare transactionless approccio:una sorta di combinazione di "Esegui script ogni periodo di tempo per aggiornare i commentiNumber" e "Non memorizzare affatto i commentiNumber". Dovrai conservare i timestamp dell'ultimo processo di ricalcolo e contare i nuovi commenti dalla data.