限制mongodb中集合中的文档数量

时间:2012-06-12 11:38:23

标签: mongodb

我有一个用作缓存的集合。如何将此集合中的文档编号限制为5M。 注意:缓存项可以更新将存在于缓存中。 我试图使用上限,但无法修改上限集合中的项目保存。

有办法吗? (我想避免删除该项,然后插入更新)

3 个答案:

答案 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是您可以在集合中存储的文档数量的上限。