• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

트랜잭션 에러

23.01.07 22:12 작성 조회수 298

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을 관리하기는 쉽지 않기 때문에 아틀라스로 이용하는걸 권장합니다.