인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

DeBuggerKing님의 프로필 이미지
DeBuggerKing

작성한 질문수

mongoDB 기초부터 실무까지(feat. Node.js)

Transaction 적용하기

트랜잭션 에러

작성

·

451

0

 let session;

  try {
    session = await mongoose.startSession();
    await session.withTransaction(async () => {
      const user = await User.findById(
        "63b95c6db51919091698cfc6",
        {},
        { session }
      );
      console.log(user);
    });
  } catch (error) {
    console.log(error);
  } finally {
    await session.endSession;
  }

 

알려주신 코드를 기반으로 해서 위와 같이 코드를 작성했는데 아래와 같은 에러가 발생되었습니다. 해결 방법이 어떤게 있을까요?

 

에러

  • MongoServerError: Transaction numbers are only allowed on a replica set member or mongos

답변 1

0

아틀라스로 몽고디비 클러스터 만드셨나요? 오류메시지에 나와 있듯이 Replica Set구성에서만 Transaction이 지원됩니다. 직접 몽고디비를 설치해서 사용하신것 같은데 단일 인스턴스로 설정하셨을거에요. 직접 Replica set을 관리하기는 쉽지 않기 때문에 아틀라스로 이용하는걸 권장합니다.

DeBuggerKing님의 프로필 이미지
DeBuggerKing

작성한 질문수

질문하기