시퀀스를 임의 생성하여 사용하는 방법입니다.
1. 시퀀스 용 Collection 생성
>db.createCollection("seq", {crapped: false });
2. 시퀀스 등록
>db.seq.insert({"_id":"seq_post", "seq":new NumberLong(1)});
( seq 값으로 1 대신에 NumberLong 값으로 넣길 바란다. ( float 형으로 처리됨을 방지 ) )
3. 시퀀스 가져오기
>db.seq.findAndModify({ query: {"_id":"seq_post"}, update: {$inc: {"seq":1}}, new: true});
이렇게 해서 "seq_post" 의 시퀀스를 가져오게 된다.
이렇게 되어있는것을 java 에서는 어떻게 가져올수 있을까?
spring-data-mongodb-1.0.0.M3.jar 를 사용하는 환경에서의 Sequece 가져오기 입니다.
/**
* 시퀀스 발급
* @param seqName
* @return
*/
public Double getSequence(String seqName){
MongoOperations mo = (MongoOperations)mongoTpl;
DBCollection coll = mo.getCollection("seq");
BasicDBObject queryObj = new BasicDBObject();
queryObj.append("_id", seqName);
BasicDBObject updateObj = new BasicDBObject();
BasicDBObject incObj = new BasicDBObject();
incObj.put("seq", 1);
updateObj.put("$inc", incObj);
DBObject result = coll.findAndModify(queryObj, updateObj);
Double seq = (Double)result.get("seq");
return seq;
}
spring-data-mongodb 를 사용하지 않을 경우에는
Mongo m = new Mongo("58.226.93.246", 27017);
DB db = m.getDB("[DB명]");
DBCollection coll = db.getCollection("seq");
이런 과정으로 DBCollection 을 얻어와 작업을 하면 되겠습니다.
출처 : http://blog.naver.com/endstar7/100134889683
'Industry 4.0 > Big Data' 카테고리의 다른 글
PINPOINT 란 (0) | 2017.03.02 |
---|---|
[MongoDB] mongo-2.10.1.jar, junit 쓴 단위 테스트 for JAVA (0) | 2014.12.13 |
[MongoDB] MongoDB - Java Driver (0) | 2014.10.01 |
[MongoDB] how to use “find” to search “_id => OBjectID(”id“)” in Perl API (2) | 2014.10.01 |
[MongoDB] Sequence 사용하기 (0) | 2014.09.22 |
댓글