sql >> Databasteknik >  >> NoSQL >> MongoDB

Läs-eget-skriv-konsistens i Mongodb

Det finns ett par punkter om denna fråga.

  1. Du är inte garanterad att ha läs-efter-skriv-konsistens om du inte använder någon av "safe=true" , "w=1" (eller högre) eller "j=true" med ditt skrivande. Du kan antingen inkludera dessa som en del av insert() eller update() kommandon, eller använd set_lasterror_options() för att ställa in dessa alternativ för anslutningen, databasen eller samlingen som du använder.

  2. Om du tillåter läsningar från sekundära noder, (t.ex. en annan ReadPreference än PRIMÄR), kommer du inte att få läs-efter-skriv-semantik, utan endast eventuell konsistens.

  3. Om du använder en ReadPreference av PRIMARY och du ställer in lämpliga lasterror-alternativ, kommer du garanterat att få läs-efter-skriv-semantik på alla operationer som använder samma socket, det vill säga samma tråd.

  4. Om du använder flera trådar, och du INTE läser från sekundära noder, kommer du garanterat att få läs-efter-skriv-konsistens så länge du utfärdar läsningen i den andra tråden efter att skrivningen är klar i den första tråden. Du kan använda vanliga trådsynkroniseringsprimitiver för att säkerställa detta.



  1. Lagra en fråga i Mongo

  2. Nodejs Mongo infoga i underdokument - dynamiskt fältnamn

  3. Kan jag konfigurera MongoDB för att vara i minnet?

  4. 2 Helm Charts med delat Redis-beroende