我有一个用作缓存的集合。如何将此集合中的文档编号限制为5M。 注意:缓存项可以更新将存在于缓存中。 我试图使用上限,但无法修改上限集合中的项目保存。
有办法吗? (我想避免删除该项,然后插入更新)
答案 0 :(得分:1)
不幸的是,你在这里做的并不多。如您所述,无法修改上限集合中的文档。而且,您不能在文档中指定限制,它以兆字节为单位,IIRC。
所以,你最好的选择是使用正常的收集并定期工作,检查收集是否有溢出,并清理旧文件。
答案 1 :(得分:0)
<强> db.createCollection( “集合名”,{封端:真,大小:10000,最大:1000})强>
此命令用于创建固定大小的集合
collectionName :您希望限制的集合名称
上限:真实(固定大小的集合)
size :最大集合大小(以字节为单位)
max :限制为否。文件
答案 2 :(得分:0)
虽然这可能有点太晚了,但使用3.x MongoDB可以使用CreateCollectionOptions行的内容。
Java 中的示例代码是:
mongoClient.getDatabase(databaseName).createCollection(collectionName,
new CreateCollectionOptions().capped(true).sizeInBytes(5120).maxDocuments(100));
其中5120是5MB的字节大小,100是您可以在集合中存储的文档数量的上限。