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

поддръжка на транзакции на mongodb 4.0 за node.js

Както беше споменато и в коментара, можете да намерите справката за транзакции на node-mongodb-native v3.1 API ClientSession . Това е така, защото транзакциите са свързани със сесия. Тоест започвате транзакция за сесия. Във всеки един момент можете да имате най-много една отворена транзакция за сесия.

Документацията за MongoDB многодокументни транзакции също така съдържа примери Node.js кодови фрагменти. Например:

  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;
  }

Препратката към методите по-горе може да бъде намерена на:

В допълнение към драйвера MongoDB Node.js v3.1, имайте предвид, че транзакциите с множество документи са налични за набори реплики само на MongoDB v4.0.x. Транзакциите за разделени клъстери са достъпни, започвайки от версия v4.2.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да изхвърля цяла база данни MongoDB като текст/json?

  2. Скоростта на заявките на CosmosDb е голяма с insertMany

  3. Сравнете вградения документ с родителското поле с mongoDB

  4. Mongoid или MongoMapper?

  5. Управление на множество технологии за бази данни с ClusterControl