2012-06-12 35 views
2

我有一个用作缓存的集合。我怎样才能将这个文件的数量限制在5M以内? 注意:可以更新的缓存项目将存在于缓存中。 我使用试图使用加盖,但项目保存在加盖集合中不能修改。限制mongodb集合中文档的数量

有没有办法做到这一点? (我想避免删除该项目,然后插入更新之一)

回答

1

不幸的是,这里没有什么可以做的。正如你所指出的,封顶集合中的文档不能被修改。而且,您不能在文档中指定限制,以兆字节为单位,IIRC。

所以,你最好的选择是使用普通的收集,并有一个定期的工作,将检查溢出收集和清理旧文件。

0

db.createCollection( “集合名”,{封端:真,大小:10000,最大:1000})

这个命令被用来创建固定大小集合,其中

集合名:收集对whicg你想放的限制名称
封顶:真(固定大小集合)
大小:以字节为单位收集的最大尺寸 max:限制在no。的文件

0

虽然这可能有点太迟,但对于3.x MongoDB,可以使用CreateCollectionOptions行中的某些内容。

的Java的样本代码,这样做将是:

mongoClient.getDatabase(databaseName).createCollection(collectionName, 
    new CreateCollectionOptions().capped(true).sizeInBytes(5120).maxDocuments(100)); 

,其中5120是为5MB和100字节大小的文件数目的上限,你可以在收藏存放。

相关问题