sql >> Database >  >> NoSQL >> MongoDB

Mongoose.js-transacties

Als u echt transacties moet hebben over meerdere documenttypen (in afzonderlijke collecties), kunt u dit bereiken met één enkele tabel waarin de te ondernemen acties worden opgeslagen.

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

Dit inzetstuk is atomair en allemaal tegelijk klaar. U kunt dan de opdrachten in de verzameling 'acties' uitvoeren en ze als voltooid markeren of ze verwijderen terwijl u ze voltooit, waarbij u uw oorspronkelijke callback oproept wanneer ze allemaal zijn voltooid. Dit werkt alleen als de lus voor het verwerken van acties het enige is dat de db bijwerkt. Natuurlijk moet je stoppen met het gebruik van mangoest, maar hoe eerder je dat doet, hoe beter je sowieso bent.



  1. Hoe array-element in mongodb te verwijderen?

  2. Langzame MongoDB-query

  3. Node.js-fout Fout:kan module 'mongoose' niet vinden

  4. Opslag voor miljoenen afbeeldingen