MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongoose.js транзакции

Ако наистина трябва да имате транзакции в множество типове документи (в отделни колекции), начинът да постигнете това е с една таблица, която съхранява действията, които трябва да предприемете.

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

Това вмъкване е атомно и всичко се прави наведнъж. След това можете да изпълните командите в колекцията „действия“ и да ги маркирате като завършени или да ги изтриете, докато ги изпълнявате, извиквайки първоначалното си обратно извикване, когато всички са завършени. Това работи само ако вашият цикъл за обработка на действия е единственото нещо, което актуализира db. Разбира се, ще трябва да спрете да използвате mongoose, но колкото по-рано го направите, толкова по-добре ще бъдете.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Използвайте $lookup в масив от обекти

  2. Spring Data Mongo:upsert с различни актуализирани полета

  3. MongoError:Не може да се извлече гео ключове от обект с Тип:Точка

  4. Връща конкатенацията на резултата от обратните извиквания, извикан в рамките на цикъл

  5. Съвети за дистанционно управление на MongoDB