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씩 증가시킨다.
결과
첫 번째 데이터를 추가하였을 때 { seq : 1 } 로 설정되었다. ( 앞에서 startAt : 1 )
두 번째 데이터를 추가 하였을 때 { 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
'About > MongoDB' 카테고리의 다른 글
[MongoDB] Session 저장/삭제하기 - 로그인/로그아웃 구현(Node.js, express-session,Mongoose) (2) | 2020.12.28 |
---|