sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongo aggregeringsramverk:vad är låsnivån för sista stegets $out-operation?

Det finns alltid en viss nivå av låsning som beroende på din MongoDB-version antingen sannolikt är insamling eller på äldre databasnivå, eller till och med möjligen dokumentnivå med WiredTiger-lagringsmotorn. $out ger dock efter för skrivningar, så individuella dokument matas ut från pipelinen och inte alla på en gång, så varje uppdatering är atomär per dokument.

Till och med mapReduce-kommandot har det här alternativet , där du kan ställa in "nonAtomic" som ett villkor där utdatasamlingen för en mapReduce kommer att uppvisa samma beteende.

En sak att vara medveten om med $out kommer att ta bort alla dokument (inte ersätta några befintliga index) från en samling eftersom det steget körs när "ersätt"-läget används. Så ett försök att läsa eller skriva från en samling riktad med "ersätt"-uppsättningen kommer mycket sannolikt att misslyckas (eller ge oväntade resultat) medan aggregeringsoperationen pågår.

Övriga begränsningar relaterade till fragmenterade samlingar och täckta samlingar anges i dokumentationen.




  1. Rails Redis inställning av maxmemory och maxmemory-policy

  2. Fjärranslutning till MongoDB http-gränssnitt på EC2-server

  3. Hur får man fram alla värden som innehåller en del av en sträng med hjälp av mongoose find?

  4. Nya säkerhetskopieringshantering och säkerhetsfunktioner för MySQL och PostgreSQL:ClusterControl Release 1.6.2