ムッシューの日記

2人の子供とのお出かけネタから趣味の釣りネタなど

MongoDBのCollectionの種類まとめ


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 } )


次へ 投稿

前へ 投稿

© 2017 ムッシューの日記

テーマの著者 Anders Norén