この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
アプリから履歴系を保存するのに好んでMongoDBを使っています。
サイズを指定しておくと古い方から消えてくれるので履歴に向いている。バッチ作って消したり、ディスク容量の心配をしなくて良いのがGood!
コレクション操作(名前変更、サイズ指定、サイズ変更)をメモしておきます。
●コレクション名を変更する
いずれは削除したいけど、当面は残す場合などに便利です。
下記は「hogehoge」から「hogehoge_bak」へ変更する例です。
use hoge
db.hogehoge.renameCollection(“hogehoge_bak”);
●サイズ指定(古いのから削除)でコレクションを作る
Mongoはコレクションを作らなくても、なければ自動で作られるけど、サイズ指定をしたい場合は事前に実施します。
dbs単位での指定は出来なさそうなのが残念。
下記は「hogehoge」を100MBで作る例です。(sizeはバイト単位で指定)
use hoge
db.createCollection(“hogehoge”, {capped:true, size: 100000000});
●コレクションのサイズを変更する
既に作ってしまったコレクションのサイズを変更します。
想定よりも早く履歴が消えちゃう場合なんかに便利
下記は「hogehoge」を1GBに変更する例です。(sizeはバイト単位で指定)
use hoge
db.runCommand({“convertToCapped”: “hogehoge”, size: 1000000000});
●おまけ:よく使うコマンド
$ mongoshow dbs <- DBS(データベース)一覧
use hoge <- DBS(データベース)切替
show collections <- コレクション(テーブル)一覧
db.hogehoge.find() <- 検索(SELECT)
db.hogehoge.drop() <- コレクション(テーブル)削除
db.dropDatabase() <- DBS(データベース)削除