mongodbのメモ2
masalib.hatenablog.com
の続きです
mongodbを外部のクエリーを実行する方法
$ mongo db_name --quiet query.js #間違い $ mongo db_name --quiet < query.js #正解
あれ・・・
参考にしたサイトだと
http://qiita.com/yuiseki/items/1c656d6bab0307e1510c
https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/
<
記号がなかったよ
わからないよ!!T_T
あと1年以上たった記事は注意が必要だJSの指定の仕方はバージョンによって違うのかな
あとこのJSは1取得、1行でかかないといけないの??
長文になったので改行していたらエラーになって動かなかった
調べきれていない
mongodbのDBをエクスポートする方法
この事に気がつかない為、さらにいらない事まで調べた
mongodbにはエクスポートの機能があった
mongoexport — MongoDB Manual
この機能を使えばコレクション(テーブル)単位での
バックアップがとれるみたいだった
$ mongoexport --db db_name --collection collection_name --out output.json
このエクスポートの機能は絞込(--query)はあるが、ソートがなかった
(できるのかもしれないけど自分はわからなかった)
ソートしたデータがほしかったからあきらめた
mongodbのDBをエクスポートでCSVにする方法
厳密にはCSVになっていないのですがCSVもどきができた
(次の処理をつくるのがめんどくさいので・・・)
単純に出力するとjson形式になってしまうので
print文を実行すると、内容のみを出力できた
db.getCollection('app.log') .find({ "client.userId" : "c871eb946596b255", _id: { $gt : ObjectId("59965440b265cd595e2a6c22") } } ) .sort({_id: -1}) .limit(1) .forEach( function(a){print('"',a.client.userId,'","',a.client.platform,'","',a.client.version,'","',a.time,'"' )} );
結果
" c871eb946596b255 "," iOS "," 1.1.7 "," Sat Aug 19 2017 01:22:19 GMT+0900 "
あとは
「" 」→「ブランク」
「 "," 」→「,」
「 "」→「ブランク」
に置き換えすればCSVが完成!!
つぶやき
やったことがなく、無駄に時間がかかった
インデックスが「_id」しか設定されておらず
作った人は何も考えていないのではと感じる
考えていないならBIGQueryにいれてよ
1億レコードになるとmongodbでも遅いよ
- 作者: 小笠原徳彦
- 出版社/メーカー: 工学社
- 発売日: 2016/07
- メディア: 単行本
- この商品を含むブログ (1件) を見る