MONGO DB 트랜잭션(Transaction)

Taro·2023년 9월 27일
0

Node.js

목록 보기
6/9

MongoDB Transaction

MongoDB가 version 4.0 으로 릴리즈 되면서 생긴 Replica Set에서 작동하는 다중 도큐먼트 트랜잭션

  • MongoDB version 4.0 이상 사용 가능
  • Mongoose 5.2.0 이상 사용 가능

기본 사용방법

  import { startSession } from 'mongoose';

  const createCustomersTransaction = async (req, res) => {
  const session = await startSession();

    try {
      await session.withTransaction(async () => {
        const options = { session };

        // Create customers
        await Customer.create({ name: req.body.name }, options);
        await Customer.create({ name: req.body.name2 }, options);
      });

      res.status(200).send('Customers created successfully.');
    } catch (error) {
      console.error('Transaction aborted. Error:', error);
      res.status(500).send('Error creating customers.');
    } finally {
      session.endSession();
    }
};

실행 순서

  1. StartSession() 트랜잭션 시작
  2. CommitTransaction() 트랜잭션 내의 모든 작업 커밋
  3. abortTransaction() 트랜잭션 중단 , 트랜잭션 내에서 수행된 이전 모든 변경 사항 취소
  4. endSession() 트랜잭션 종료
profile
기록하며 공부하는곳

0개의 댓글