--------(--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2012-09-15(Sat)

MongoDBでmongoimportとmongoexportを使ってみる

MongoDBでmongoimportとmongoexportを使ってみた。
わりと簡単。
(Exportしてみる)
> mongoexport --db testdb --collection test --out output.json
アウトプットはこんな感じ。
$ cat output.json
{ "_id" : { "$oid" : "504a05bba28e3f3a77f44fd5" }, "date" : { "$date" : 1346803260000 } }
{ "_id" : { "$oid" : "504a063ea28e3f3a77f44fd6" }, "date" : { "$date" : 1346803200000 } }

次にpythonでimportするファイルを作ってみる。
ちょっとややこしいのは日付が1970年からの日数になっているところで
上記のように{"date": "$date": シリアル番号}
で記載する。
>>> import json
>>> import datetime
>>> start=datetime.datetime(1970, 1, 1)
>>> now=datetime.datetime(2012, 9, 5)
>>> dd=now-start
>>> m=dd.days
>>> vserial_date=m * 3600 * 24
>>> S_DT="""{"date":{"$date":%s}, "date1":%s}¥n"""
>>> s_dt=S_DT % (serial_date*1000, serial_date*1000)
>>> fp=open('output.json','w')
>>> fp.writelines(s_dt)
>>> fp.writelines(s_dt)
>>> fp.close()

これで 2012-09-05のoutput.jsonに出力できた。

(Inportしてみる)
$ ./mongoimport --db testdb --collection test --file output.json --journal


確認してみる
> db.test.find()
{ "_id" : ObjectId("504a19d3f6262c75e97214d0"), "date" : ISODate("2012-09-05T00:00:00Z"), "date1" : NumberLong("1346803200000") }
{ "_id" : ObjectId("504a19d3f6262c75e97214d1"), "date" : ISODate("2012-09-05T00:00:00Z"), "date1" : NumberLong("1346803200000") }



参考:
MongoDBデータのインポートとエクスポート
mongoimportマニュアル
mongodumpマニュアル
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

コメント

プロフィール

kumagonjp2

Author:kumagonjp2
Python,Django,R,Mongo,MySQL,Struts,Spring,データマイニングなどサーバー関係のメモを残していきます。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
雪が3Dで降るブログパーツ ver2

マウスで見る方向変えられます

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。