我有一个用作缓存的集合。我怎样才能将这个文件的数量限制在5M以内? 注意:可以更新的缓存项目将存在于缓存中。 我使用试图使用加盖,但项目保存在加盖集合中不能修改。限制mongodb集合中文档的数量
有没有办法做到这一点? (我想避免删除该项目,然后插入更新之一)
我有一个用作缓存的集合。我怎样才能将这个文件的数量限制在5M以内? 注意:可以更新的缓存项目将存在于缓存中。 我使用试图使用加盖,但项目保存在加盖集合中不能修改。限制mongodb集合中文档的数量
有没有办法做到这一点? (我想避免删除该项目,然后插入更新之一)
不幸的是,这里没有什么可以做的。正如你所指出的,封顶集合中的文档不能被修改。而且,您不能在文档中指定限制,以兆字节为单位,IIRC。
所以,你最好的选择是使用普通的收集,并有一个定期的工作,将检查溢出收集和清理旧文件。
db.createCollection( “集合名”,{封端:真,大小:10000,最大:1000})
这个命令被用来创建固定大小集合,其中
集合名:收集对whicg你想放的限制名称
封顶:真(固定大小集合)
大小:以字节为单位收集的最大尺寸 max:限制在no。的文件
虽然这可能有点太迟,但对于3.x MongoDB,可以使用CreateCollectionOptions行中的某些内容。
在的Java的样本代码,这样做将是:
mongoClient.getDatabase(databaseName).createCollection(collectionName,
new CreateCollectionOptions().capped(true).sizeInBytes(5120).maxDocuments(100));
,其中5120是为5MB和100字节大小的文件数目的上限,你可以在收藏存放。