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

Mongoose.js transaktioner

Hvis du virkelig skal have transaktioner på tværs af flere dokumenttyper (i separate samlinger), er midlet til at opnå dette med en enkelt tabel, der gemmer handlinger, der skal udføres.

db.actions.insert(
{ actions: [{collection: 'players', _id: 'p1', update: {$set : {name : 'bob'} } },
            {collection: 'stories', _id: 's1', update: {$set : {location: 'library'} } }], completed: false }, callback);

Denne indsats er atomart, og alt udført på én gang. Du kan derefter udføre kommandoerne i 'handlinger'-samlingen og markere dem som fuldførte eller slette dem, efterhånden som du fuldfører dem, og kalde dit oprindelige tilbagekald, når de alle er afsluttet. Dette virker kun, hvis din handlingsbehandlingsløkke er det eneste, der opdaterer db. Selvfølgelig skal du stoppe med at bruge mongoose, men jo hurtigere du gør det, jo bedre bliver du alligevel.



  1. Sådan klones en samling fra en MongoDB til en anden på samme server

  2. Opdater meteorsamling uden at fjerne eller tilsidesætte eksisterende felter

  3. Typescript:dyb tast af et indlejret objekt, med relateret type

  4. Node, Mongoose:Fjern json-elementet fra forespørgselsresultatet med delete