MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Obsługa transakcji mongodb 4.0 dla node.js

Jak wspomniano w komentarzu, możesz znaleźć odniesienie do transakcji na node-mongodb-native v3.1 API ClientSession . Dzieje się tak, ponieważ transakcje są powiązane z sesją. Oznacza to, że rozpoczynasz transakcję dla sesji. W dowolnym momencie możesz mieć co najwyżej jedną otwartą transakcję na sesję.

Dokumentacja Transakcje wielodokumentowe MongoDB zawiera również przykłady Node.js fragmenty kodu. Na przykład:

  session.startTransaction({
    readConcern: { level: 'snapshot' },
    writeConcern: { w: 'majority' }
  });

  const employeesCollection = client.db('hr').collection('employees');
  const eventsCollection = client.db('reporting').collection('events');

  await employeesCollection.updateOne(
    { employee: 3 },
    { $set: { status: 'Inactive' } },
    { session }
  );
  await eventsCollection.insertOne(
    {
      employee: 3,
      status: { new: 'Inactive', old: 'Active' }
    },
    { session }
  );

  try {
    await commitWithRetry(session);
  } catch (error) {
    await session.abortTransaction();
    throw error;
  }

Odniesienia do powyższych metod można znaleźć pod adresem:

Należy pamiętać, że oprócz sterownika MongoDB Node.js w wersji 3.1, transakcje obejmujące wiele dokumentów są dostępne dla zestawów replik tylko w MongoDB v4.0.x. Transakcje dla klastrów podzielonych na fragmenty są dostępne od wersji v4.2.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Make $elemMatch (projekcja) zwraca wszystkie obiekty spełniające kryteria

  2. MongoDB, Mongoose:Jak znaleźć poddokument w znalezionym dokumencie?

  3. Mongoid czy MongoMapper?

  4. Przenoszenie danych HDFS do MongoDB

  5. zaktualizuj określony element z zagnieżdżonej tablicy dokumentów mongodb, gdzie ma dwa dopasowania