mongodb:collection
Collection
mongoDBのcollectionについて
capped collection
* 最大サイズが固定されているコレクション * 最大サイズを超えてinsertしようとすると古いデータから削除される * insertが速い
- ただしautoIndexId(_idにindexを作成するかどうかのフラグ)をfalseにする必要がある
* autoIndexIdをfalseにするとシャーディングできません
- が、大抵の場合シャーディングは不要
* updateに制約がある
- in placeなアップデートのみ可能($incのようなドキュメントサイズが変わらないupdateのこと)
* ログ格納などに向いている
db.createCollection('CollectionName', { capped: true, size: 100000000, autoIndexId: true});
TTL Index
* 指定した時間が経過するとドキュメントが消える * セッションデータの格納に向いている
db.CollectionName.createIndex( { "createdAt": 1 }, { expireAfterSeconds: 3600 } );
この場合、createdAtフィールドは今の時間を格納する。今から3600秒後にドキュメントが削除される。
db.CollectionName.createIndex( { "expiredAt": 1 }, { expireAfterSeconds: 0 } );
この場合、expiredAtフィールドには削除したい時間を格納する。その時間になるとドキュメントが削除される。
db.CollectionName.createIndex( { "lastModified": 1 }, { expireAfterSeconds: 3600 } )
lastModifiedDateを毎回現在時刻でupdateすることで、最終アクセスから3600秒更新されないと削除されるドキュメントも作成可能
mongodb/collection.txt · 最終更新: 2015/07/24 04:14 by nullpon