mongodb 도큐먼트에 ttl 걸기

mongodb 2.2부터 expire 옵션을 쓸 수 있게 되었다.
그래서 일정시간이 지난 후 도큐먼트를 자동으로 삭제할 수 있다.
예를 들어, 네트워크트래픽을 수집해서 시스템을 만들었는데 트래픽데이터를 최근 6개월치만 유지하고 싶을 때
오래된 도큐먼트를 지우는 작업을 따로 하지 않아도 된다.

공식메뉴얼 : http://docs.mongodb.org/manual/tutorial/expire-data/#expire-documents-after-a-certain-number-of-seconds

2가지 방법이 있다.
1. 도큐먼트가 생성된 시각부터 지정된 시간(초)가 지난 후 삭제.
2. 언제 삭제할 지 특정 시각을 도큐먼트에 지정.

지정된 시간이 지난 후 삭제하는 방법을 알아보자.
인덱스를 아래처럼 생성한다.

 

createdAt 칼럼은 도큐먼트에 들어갈 항목이다.
expireAfterSeconds에서는 도큐먼트가 생성된 후 얼마 지난 후 삭제할 것인지 초단위로 지정한다.

이제 도큐먼트를 생성할 때 createdAt 필드를 추가하면 된다.

 

createdAt필드에 지금시각을 지정해주면 된다.
python에서 pymongo를 이용하여 도큐먼트를 생성하는 방법은 아래와 같다.

 

아두이노 구매

올해는 아두이노와 함께 시작했다.

제작년부터 사고 싶었던 아두이노를 드디어 구매했다.
돈을 마련하기 위해 안 쓰는 키보드 하나 팔았다.

구매하기전에 뭘 어떤걸 구매해야 할지 몰라서 헤맸다.
우노R3를 많이 구매하는 듯 하고 책이나 예제가 대부분 우노R3에 맞춰서 나오는 것 같은데,
난 신버전 신봉자라서 다음버전이라고 하는 레오나르도를 구매했다.
사용하는데 있어서 별 어려움은 없을 거라고 생각했다.

보드만 구매해서는 안되고 저항이라던가 LED, 센서등등도 구매해야 되는 것 같은데,
당장 뭐가 필요한지 어떤게 있으면 좋은지 모르겠으니 그냥 대충 있을 것 있는 스타터킷을 구매했다.
구매한 곳은 디바이스마트(http://devicemart.co.kr)다.

아두이노로 뭐든 만들어낼 수 있는 것 같은데 내가 뭘 할 수 있을지는 모르겠다.
먼저 화분이 있는 베란다의 온도와 습도를 측정해서 주기적으로 로깅하는 작업을 해보고 싶다.
근데 스타터킷에는 습도센서가 안 들어있어서 따로 구매해야겠다.

구매 후 해본 것은 LED에서 불 켜는 것, 스위치를 이용한 LED제어, 조광센서를 이용하여 빛의 세기에 따라 LED 의 밝기를 조정하는 것.
아두이노를 잼나게 갖고 놀려면 결국 이런저런 센서를 추가구매해야 할 듯 하다.

 

IMG_2548

IMG_2546