sql >> Databáze >  >> NoSQL >> MongoDB

Transakce Mongoose.js

Pokud opravdu musíte mít transakce mezi více typy dokumentů (v samostatných kolekcích), prostředkem k tomu je jediná tabulka, která ukládá akce, které je třeba provést.

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

Tato vložka je atomová a vše hotovo najednou. Poté můžete provádět příkazy ve sbírce 'akcí' a označit je jako dokončené nebo je odstranit, jakmile je dokončíte, a zavolat původní zpětné volání, když jsou všechny dokončeny. To funguje pouze v případě, že vaše smyčka zpracování akcí je jediná věc, která aktualizuje db. Samozřejmě budete muset přestat používat mangusty, ale čím dříve to uděláte, tím lepší budete.



  1. Mongoose:Odeslání do ObjectId se nezdařilo

  2. Architektonické vzory pro zpracování dat téměř v reálném čase pomocí Apache Hadoop

  3. Proč je použití $all v mongodb mnohem pomalejší?

  4. Mongodb 4+ findOneAndUpdate() returnNewDocument nefunguje