MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Prise en charge des transactions mongodb 4.0 pour node.js

Comme mentionné dans le commentaire également, vous pouvez trouver la référence des transactions sur Node-mongodb-native API ClientSession v3.1 . En effet, les transactions sont associées à une session. Autrement dit, vous démarrez une transaction pour une session. À tout moment, vous pouvez avoir au plus une transaction ouverte pour une session.

La documentation pour Transactions multi-documents MongoDB contient également des exemples Node.js extraits de code. Par exemple :

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

La référence des méthodes ci-dessus se trouve sur :

En plus du pilote MongoDB Node.js v3.1, veuillez noter que les transactions multi-documents sont disponibles pour les jeux de répliques uniquement sur MongoDB v4.0.x. Les transactions pour les clusters partitionnés sont disponibles à partir de la version v4.2.