Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Elk
- javascript
- effective
- reactor
- reactive
- libuv
- redis
- Heap
- git
- HTTP
- mongodb
- Linux
- VCS
- nodejs
- mybatis
- network
- 데이터통신
- r
- cache
- Lombok
- github
- NoSQL
- html
- spring
- socket
- AWS
- Java
- 네트워크
- Static
- ajax
Archives
- Today
- Total
빨간색코딩
mongoose-auto-increment 본문
참조문서 : https://www.npmjs.com/package/mongoose-auto-increment
시퀀스 넘버키를 편하게 쓸 수 있다. npm install mongoose-auto-increment
를 다운로드받는다.
1. 연결
const connection = mongoose.connect(....)
autoIncrement.initialize(connection);
으로 연결한다. mongoose.connect의 콜백에 autoIncrement.initialize()
를 넣으면 Error: mongoose-auto-increment has not been initialized
가 떨어진다.
2. 시퀀스넘버 설정
const logger = new Schema({..})
logger.plugin(autoIncrement.plugin, 'log');
const Logger = mongoose.model('log', logger);
이때 컬렉션명 일치가 중요하다. 이렇게하면 _id가 0부터 순차증가한다.
내부 모듈(index.js) 까보면 초기화할때 컬렉션을 만들고, save이벤트 발생전에 pre로 아래와 같은 로직을 처리한다.
IdentityCounter.findOneAndUpdate(
$inc: { count: settings.incrementBy }
몽고 쉘 에서 찾아보면
> db.identitycounters.find()
{ "_id" : ObjectId("5979cf841acc96176446e0ab"), "model" : "log", "field" : "_id", "count" : 3, "__v" : 0 }
3. 이외 옵션
API문서보면 인덱스 시작 숫자 변경, 증가수 변경, 필드 설정등이 가능하다.
bookSchema.plugin(autoIncrement.plugin, {
model: 'Book',
field: 'bookId',
startAt: 100,
incrementBy: 100
});
'node.js' 카테고리의 다른 글
V8 inspector을 이용한 디버깅 (0) | 2017.08.04 |
---|---|
nodejs 메모리 누수 (0) | 2017.08.04 |
Mongoose 모듈 (mongodb와 혼용, 연결, 스키마, 타입, 모델, CRUD) (0) | 2017.08.04 |
libuv (개념, 아키텍처, 이벤트루프, 쓰레드풀) (1) | 2017.08.01 |
워커 쓰레드풀 확장을 통한 성능튜닝 (process.env.UV_THREADPOOL_SIZE) (0) | 2017.07.25 |
Comments