본문 바로가기

About/MongoDB

[MongoDB] Mongoose-auto-increment (자동 증가 번호)

MySQL에서 많이 사용하는 Auto increment를 NoSQL인 MongoDB에서도 사용 가능하다.

Mongoose를 이용하여 auto-increment를 사용해보자

 

 

우선 Node.js 에서 npm을 이용하여  Mongoose-auto-increment를 설치한다.

npm install mongoose-auto-increment

 

그 후 auto-increment를 require 해준 후 연결된 Mongoose connection을 이용하여 초기화시켜준다.

 

var mongoose = require('mongoose');
var autoIncrement = require('mongoose-auto-increment');
autoIncrement.initialize(mongoose.connection);

 

숙제 번호 할당에 사용할 예정이므로 숙제 DB 스키마에 seq 필드를 추가해준다.

주의할 점은 seq 필드의 type이 Number 여야 한다!(번호이므로)

var homework = new mongoose.Schema({
    seq: {type: Number, default: 0}, // 숙제번호를 위해 추가
    
    ...생략...
    
}, {collection: '', versionKey: false});

 

스키마를 생성한 후 다음 코드를 추가한다.

 

homework.plugin(autoIncrement.plugin, {
    model: 'hws',
    field: 'seq',
    startAt: 1, //시작
    increment: 1 // 증가
});

해당 코드를 추가하면 해당 스키마가 다음과 같이 설정된다.

model: 'hws',  -> hws 모델에
field: 'seq',     -> seq 필드를
startAt: 1,      -> 시작 번호 1로  
increment: 1  -> 1씩 증가시킨다.

 

 

 

결과

설정 변경 후 DB 첫 데이터 추가

첫 번째 데이터를 추가하였을 때 { seq : 1 } 로 설정되었다. ( 앞에서 startAt : 1 )

 

DB 두 번째 데이터 추가

두 번째 데이터를 추가 하였을 때 { seq : 2 }로 설정되어 자동으로 1 증가한 것을 확인할 수 있다.

 

 

 

 

MySQL에서 많이 사용하는 Auto increment를 NoSQL인 MongoDB에서 Mongoose-auto-increment를 이용하여 구현해보았다.

 

 

참고

https://msyu1207.tistory.com/entry/mongoose-%EC%9E%90%EB%8F%99-%EC%A6%9D%EA%B0%80auto-increment