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

이두영님의 프로필 이미지

작성한 질문수

탄탄한 백엔드 NestJS, 기초부터 심화까지

회원가입 서비스 개발 & DTO 패턴

mongodb에서 Auto_incement 기능을 사용할수 있는 방법이 있나요?

21.09.05 16:11 작성

·

1.4K

1

저는 이번 강의로 mongoose는 처음 이용해 보는데요.

DB 의 _id 값에 SQL의 Auto_increment 이용하듯이 Int 타입으로 값을 넣고 싶은데요 어떻게 해야 하나요?

express로 설계할 때에는 추가적으로 Collection을 만들고 거기에서 DB에 입력할때 값을 받아오고 숫자를 늘려주는 방법으로 했었는데요.. Nest로  설계하기는 약간 복잡한거 같아서 질문드립니다.

답변 1

0

윤상석님의 프로필 이미지
윤상석
지식공유자

2021. 09. 06. 18:06

안녕하세요! 이두영님 :)

우선 특수 목적을 제외하면, mongodb의 _id는 분산 확장 등을 고려하여 설계되어 있기 때문에 mongodb에서는 _id 값을 ObjectId 타입을 권장드립니다. 

auto_increment 관련해서 좋은 포스팅 소개합니다. https://wjdtn7823.tistory.com/59

특수 목적으로 사용하신다면, 말씀하신대로 수동으로 값을 읽고 늘려줘도 되지만 관련해서 라이브러리(플러그인)을 사용하시는 것을 권장드립니다! https://github.com/ramiel/mongoose-sequence

https://stackoverflow.com/questions/62824276/auto-increment-sequence-in-nestjs-mongoose

라이브러리 사용말고 pre 메서드를 사용해서도 해결하셔도 됩니다.

https://mongoosejs.com/docs/middleware.html#pre

추가적인 질문 있으시면 답글 주세요!