본문 바로가기
  • AI (Artificial Intelligence)
Industry 4.0/Big Data

[MongoDB] Sequence 사용하기

by 로샤스 2014. 9. 22.

mongo에서 sequence 를 사용할 수 있긴한데.. 함수를 이용해야된다.

예제를 보는게 가장 쉬울듯


01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
> use test
switched to db test
 
// 시퀀스를 사용하기 위한 컬렉션 생성
// double 형으로 인식되는걸 방지하기 위해 NumberLong 사용
> db.counters.insert( { _id:"userid", seq: new NumberLong(0) } )
 
// 시퀀스 가져오는 함수 생성
> function usfGetNextSequence(name) {
   var result = db.counters.findAndModify(
          {
            query: { _id: name },
            update: { $inc: { seq: 1 } },
            new: true
          }
   );
 
   return result.seq;
}
 
// 시퀀스 테스트
> db.users.insert( { _id: usfGetNextSequence("userid"), name:"name A" } )
> db.users.insert( { _id: usfGetNextSequence("userid"), name:"name B" } )
 
// 입력된 시퀀스 값 확인
> db.users.find()
{ "_id" : 1, "name" : "name A" }
{ "_id" : 2, "name" : "name B" }
 
// 시퀀스용 컬렉션 데이터 확인
> db.counters.find()
{ "_id" : "userid", "seq" : 2 }



참고: 

http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/

http://docs.mongodb.org/manual/core/shell-types/











출처 : http://kalva.tistory.com/entry/Sequence-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0











댓글