MongoDBのコレクション(RDBでいうテーブル)は3種類ぐらいあります。
通常のコレクション
特に制約のない普通のコレクションです。
insertするときにコレクションが無ければ勝手に作られ、明示的に作ることも出来ます。
db.createCollection("sample");
サイズ指定のコレクション
コレクションのサイズ(Byte)が上限に達した場合、古いレコードから削除されます。
コレクション作成時にsizeオプションで指定します。
cappedオプションをtrueにすると、サイズを固定できます。
db.createCollection("sampleCollection", { capped : true, size : 5242880 } )
ドキュメント数指定のコレクション
ドキュメント数(レコード数)の上限をコレクションに設定でき、上限を超えた場合は古いドキュメントから自動的に削除されます。
コレクション作成時にmaxオプションで指定します。
db.createCollection("sampleCollection", { max : 5000 } )
期間指定のコレクション
レコードの保持期間を指定できます。他と違いコレクション作成時ではなく、コレクションにexpireAfterSecondsオプション指定のインデックスを作成することで実装できます。
コレクション内の指定レコードがexpireAfterSecondsで指定した秒を超えると削除されます。下記の例だと、レコードのcreatedAtキーの日時が約3ヶ月たつと削除されます。
db.sampleCollection.createIndex({"createdAt":1},{expireAfterSeconds: 7776000});
下記のようにするとレコードのexpireAtに削除する日を指定するような使い方もできます。
db.sampleCollection.createIndex( { "expireAt": 1 }, { expireAfterSeconds: 0 } )