红雪  

这几天发现mongodb 自动生成的_id 列包含了很多信息,其中前8位数是数据插入的时间,比较好玩,为了能查询数据插入时间(当然在保存对象里可以增加个时间列作为业务需要用),动手写了shell脚本,代码如下:

 1 #!/bin/sh
 2 # mongodb 数据插入数据库时间转换计算2012.5.21 lg 
 3  dateStr="$1"
 4 
 5 if [ -z "$dateStr" ];then
 6     echo "输入错误,不能为空..."
 7     exit 1
 8 fi
 9 
10  strLen=${#dateStr}
11 
12 #$strLen>8 || echo "长度不能小于8" &&  exit 1 
13 
14 if [ $strLen -lt 8 ];then
15     echo "长度不能小于8"
16     exit 1
17 fi
18 
19 #dateConvert()
20 #{
21 #value=$1
22 #dateStrFormat=${value:0:8}
23 #(date16to10=(16#$dateStrFormat))
24 #}
25 
26 dateStrFormat=${dateStr:0:8}
27 
28 dateInt=$((16#$dateStrFormat))
29 [ $? -gt 0 ] && exit 3
30 returnValue=`date -d "1970-01-01 UTC $dateInt sec" +"%Y-%m-%d %H:%M:%S"`
31 
32 echo "结果为:$returnValue"
33 exit $?

脚本很短,呵呵。运行时,把mongodb _id 作为参数即可,结果如图:

 

 

posted on 2012-05-22 17:29  战锋  阅读(483)  评论(0编辑  收藏  举报