IT 이야기/MongoDB2013. 7. 26. 17:21

MongoDB는 ObjectID란 것이 있다.


{ "_id" : ObjectId("51f1dd7cf6d140526e6f9280")

이런 식으로 _id 필드에 값을 지정하지 않으면 임의의 유니크 값으로 들어 간다.


이 값이 인덱스로도 무조건 자동 등록!!


그럼 요놈의 ObjectID란 놈을 살펴 보자


여기에는 타임 스탬프 값이 있다.


앞자리 8자리는 타임 스탬프 값이라고 보면 된다.


간단하게 ObjectID를 생성해보자


일단 현제 TimeStamp를 구한다.


어려우면 


http://www.epochconverter.com/


이 사이트 가면 된다.


타임 스탬프 값을 가져와서 아래와 갘이 임의로 ObjectId를 생성할 수 있다.



16진수로 변경한 것이 앞자리 8자리 이다.


뒤에 것은 임의로 mongoDB가 자동 생성! 여기서 MongoDB Object ID 구성을 더 보자면


 Timestamp

Machine ID 

Process ID 

Counter 

4bytes(8자리) 

3bytes(6자리) 

2bytes(4자리) 

3bytes(6자리) 


이렇게 구성되 있다고 한다.


MachineID와 Process ID는 랜덤하게 생성 된다


진짜 인지 굼금하면 소스 확인 ㄱㄱ~


이제 ObjectID의 정체를 알았으니 활용도 가능하다.


특별히 _id 값을 입력하지 않았다면


ObjectID에 데이터 저장 시간이 포함 된다는 이야기!!!


입력 시간을 기준으로 데이터를 검색 할 수 있다는 이야기 이다. 별다른 Index 지정 없이!



이렇게 범위 검색이 가능하다는 거


MongoDB에서는 또 ObjectId에서 날짜를 추출하는 함수를 제공한다.



요렇게~ 


구해 진 값을 보건데 이건 UTC로 저장 되는 걸 확인


활용 할려면 UTC인지 local Time 인지 잘 구분해서 해야 하는군


간단하 Java 활용 코드를 보자면


int mtime = 1374820967;

String m = Inetger.toHexString(mtime);

String rm = m + "0000000000000000";

ObjectId id = new ObjectId(rm);


이런 식으로 생성해서


쿼리에 응용해주면 된다!







'IT 이야기 > MongoDB' 카테고리의 다른 글

MongoDB 현재 작동중인 쿼리 OP 중단하기  (0) 2013.12.24
Posted by W.C.
영어2013. 7. 25. 23:42

You have got to come clean

You got to come clean

진실을 말해야 한다

솔직히 자백해

Seal 동사로 봉인하다 밀봉하다

명사로 바다표범

무죄인 innocent

결백하고 순수한

Assistance 보조원 조수

팝송

I met a devil women

She took my heart

I had it comein'to me

내가 자초했다

Tpl

This is something ever

이것이 지금까지 가장~한거야

This is the crazist idea ever

지금까지 가장 미친 생각이야

완전 열받았다 눈이 뒤집혔다

Flip this lid

Take힘을 들여 가져감

Get슬쩍 가져감


오늘 배운 문장으로 이야기를 만들어 보자
i saw a man who was almost dead.

'what happen man?' i said 

'i had it comein'to me' he said

'what? tell me more. you got to come clean. you don't have enough times'

'i made Russel. i had to seal him.. but i failed'

'what? what are you taking about that? this is the crazyist idea ever'

'i know you never believe me. just take it'

'what is this? i don't want flip this lid. tell me true!!'

but he never said again!



'영어' 카테고리의 다른 글

굿모닝 팝스 2013년 7월 6일 토요일  (0) 2013.07.25
굿모닝 팝스 2013 07 05금  (0) 2013.07.23
Posted by W.C.