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

Rspec-tests fejler tilfældigt ved analyse af ActiveRecord-objekter genereret af Mongoid-hændelser

I en typisk Mongodb-opsætning kan der være en forsinkelse mellem hvornår en databaseskrivning returnerer med succes, og hvornår disse data kan læses. Der er to grunde til dette:

  • For ydeevneforbedringer kan en "usikker" skrivning vende tilbage, før dataene er overført til disken.
  • Mongodb bruger replikasæt, og der er en replikeringsforsinkelse. Almindeligvis bliver læsninger distribueret til replikaerne som en form for belastningsbalancering, så selvom du bruger en sikker skrivning, kan du læse fra en anden server end den du lige har skrevet til og dermed ikke se de data, du lige har skrevet.

For at sikre, at du altid umiddelbart kan læse de data, du lige har skrevet ved hjælp af Mongoid, skal du indstille databasesessionsindstillingerne consistency: :strong, safe: true , hvoraf ingen er standard.



  1. Aggregate $lookup returnerer ikke elementernes oprindelige array-rækkefølge

  2. Redis, Node.js og Socket.io:Cross-server-godkendelse og node.js-forståelse

  3. Tilføj et felt med stigende værdi i MongoDB Aggregation baseret på betingelse

  4. multipel dokumenttransaktion virker ikke i c# ved hjælp af mongodb 4.08 community server