【備忘録】MongoDBでmongoexportを用いてデータを抽出する(日時指定)



cve-db.secureoss.jpで使用しているMongoDBで、情報を処理したくなったのでexportの方法等をまとめてます。今回は、日時指定です。


SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。

cve-db.secureoss.jpで使用しているMongoDBで、情報を処理したくなったのでexportの方法等をまとめてます。今回は日時指定です。基本的に、DBに入ってる情報はcve-searchを使用しているので、cve-searchをホゲる感じになります。


MongoDBからの抽出(mongoexport)

MongoDBからの抽出には、mongoexportを使用します。Debianの場合には、mongo-toolsに同梱されています。

mongoexportでは、queryを書くことが出来ます。この辺の詳しいクエリ方法については、順次調べる予定です。


日時を指定してのexport

mongoexportで”hoge”の日時を指定するには、こんな感じです。ユーザ名は”foo”、DB名は”bar”、collectionは”baz”にして、ローカルの12345ポートでListenしてるイメージです。


mongoexport --query '{"hoge":{"$gte": new Date(12000000), "$lte" : new Date(1200000001)}}' --host=127.0.0.1:12345 -u foo --db=bar --collection=baz

ここで、Date()の中に入る日時は、次のコマンドで求められます(+00:00の所はタイムゾーンに合わせてください)。


$ date -d 'YYYY-MM-DDThh:mm:ss+00:00' '+%s'000

例えば、2018年01月01日00時00分00秒(+00:00)は


$ date -d '2018-01-01T00:00:00+00:00' '+%s'000
1514764800000

となり、2018年12月31日23時59分59秒(+00:00)は


$ date -d '2018-12-31T23:59:59+00:00' '+%s'000
1546300799000

となるので、"hoge"が2018年中を表すものをexportしたい場合には


mongoexport --query '{"hoge":{"$gte": new Date(1514764800000), "$lte" : new Date(1546300799000)}}' --host=127.0.0.1:12345 -u foo --db=bar --collection=baz

とします。

セキュリティ系連載案内


セミナー情報 1

2018年10月22日から10月25日のCSS(Computer Security Symposium)2018で、「OSSセキュリティ技術ワークショップ(OWS) 2018特別セッション」 と題しまして、OSSセキュリティ技術の会後援で特別セッションを開催します。

https://www.iwsec.org/ows/2018/index.htmlにプログラム内容と一般論文申し込みの詳細を載せていきますので、是非御確認下さい(ページは更新中です)。



セミナー情報

2018/11/05 19:00に、「2018年秋のBPFまつり」と題しまして、OSSセキュリティ技術の会 第四回勉強会を行います。

今回のテーマはBPF(Berkeley Packet Filter)になります。

https://secureoss-sig.connpass.com/event/103763/がプログラム内容と申し込みの詳細になります。奮ってご参加下さい。

OSSに関するお困りごとは サイオス OSSよろず相談室まで

サイオスOSSよろず相談室 では、OSSを利用する中で発生する問題に対し、長年培ってきた技術力・サポート力をもって企業のOSS活用を強力に支援します。Red Hat Enterprise Linux のほか、CentOS をご利用されている環境でのサポートも提供いたします。