In una tipica configurazione Mongodb, può esserci un ritardo tra il momento in cui la scrittura di un database viene restituita correttamente e il momento in cui i dati possono essere letti. Ci sono due ragioni per questo:
- Per migliorare le prestazioni, è possibile che venga restituita una scrittura "non sicura" prima che i dati vengano salvati sul disco.
- Mongodb utilizza i set di repliche e si verifica un ritardo di replica. Comunemente le letture vengono distribuite alle repliche come una forma di bilanciamento del carico, quindi anche se utilizzi una scrittura sicura, potresti leggere da un server diverso da quello su cui hai appena scritto e quindi non vedere i dati che hai appena scritto.
Per assicurarti di poter sempre rileggere immediatamente i dati che hai appena scritto utilizzando Mongoid, devi impostare le opzioni della sessione del database consistency: :strong, safe: true
, nessuno dei quali è predefinito.