ユーザ用ツール

サイト用ツール


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