この目的でキャップドコレクションを使用できます。 mongo
シェルの例:
db.createCollection('capped', {capped: true, size: 100000, max: 3})
は100000バイトの最大サイズで、capped
という名前のキャッピングされたコレクションを作成し、3つの文書の最大が含まれています。新しい文書が挿入されると、最も古い文書が削除されます。
> db.capped.insert({_id: 4, name: 'John', message: 'howdy'})
> db.capped.find()
{ "_id" : 2, "name" : "John", "message" : "Hey" }
{ "_id" : 3, "name" : "John", "message" : "Hello" }
{ "_id" : 4, "name" : "John", "message" : "howdy" }
最古の文書を自動的にコレクションから削除されます。新しい文書を挿入
> db.capped.insert({_id: 1, name: 'John', message: 'Hi'})
> db.capped.insert({_id: 2, name: 'John', message: 'Hey'})
> db.capped.insert({_id: 3, name: 'John', message: 'Hello'})
> db.capped.find()
{ "_id" : 1, "name" : "John", "message" : "Hi" }
{ "_id" : 2, "name" : "John", "message" : "Hey" }
{ "_id" : 3, "name" : "John", "message" : "Hello" }
。同様に:
> db.capped.insert({_id: 5, name: 'John', message: 'hello'})
> db.capped.find()
{ "_id" : 3, "name" : "John", "message" : "Hello" }
{ "_id" : 4, "name" : "John", "message" : "howdy" }
{ "_id" : 5, "name" : "John", "message" : "hello" }
詳細については、Capped Collections pageを参照してください。