您可以使用capped collection来实现此目的。在mongo
壳的一个例子:
db.createCollection('capped', {capped: true, size: 100000, max: 3})
将创建一个名为capped
加盖收集,用的100000个字节的最大尺寸,并且将包含最多3个文件的。插入新文档时,最旧的文档将被删除。
> 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: 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: 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。