MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Suporte a transações mongodb 4.0 para node.js


Conforme mencionado no comentário também, você pode encontrar a referência para transações em node-mongodb-native v3.1 API ClientSession . Isso ocorre porque as transações estão associadas a uma sessão. Ou seja, você inicia uma transação para uma sessão. A qualquer momento, você pode ter no máximo uma transação aberta para uma sessão.

A documentação para Transações de vários documentos do MongoDB também contém exemplos Node.js partes de codigo. Por exemplo:
  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;
  }

A referência para os métodos acima pode ser encontrada em:

Além do driver MongoDB Node.js v3.1, observe que as transações de vários documentos estão disponíveis para conjuntos de réplicas apenas no MongoDB v4.0.x. As transações para clusters fragmentados estão disponíveis a partir da versão v4.2.