限制MongoDB数据库大小?

8
我们有兴趣部署MongoDB,但我们需要知道是否可以限制数据库/表的大小?
例如:
db.user1.find() db.user2.find()
如上所示,每个用户将拥有自己的数据库。我们希望限制每个用户的数据库大小,以便没有一个用户会占用所有硬盘空间。
MongoDB是否支持此功能?
谢谢。

我不确定它是被称为“数据库”还是“表格”,这就是为什么我给出了db.user1和db.user2的例子。 - rogj
没有数据库或表,只有在被引用时创建的集合,或者根据@Falcon的答案提前创建。如果提前创建,您可以指定最大大小以及是否为封顶集合。在封顶集合中,当达到最大数据大小时,旧行将随着新行的插入按插入时间删除。 - Dan Grossman
那么,对于用户注册/登录来说,有上限的集合并不一定有效,对吧?(因为旧的用户行将被删除) - rogj
@Dan,什么?没有数据库?你确定吗?我不想讽刺,但MongoDB的官方网站上明确写着“MongoDB(来自“ humongous”)是一个可扩展的、高性能的、开源的、面向文档的数据库(强调)”。 - chris
3
@chris 没错,但是db.user1.find()和db.user2.find()指的是两个不同的集合,而不是两个数据库。在不同的上下文中,“数据库”的含义也各不相同。对于Oracle来说,它是磁盘上的物理实体;对于MySQL来说,它只是一个命名空间。在你引用的语句中,它指的是词典定义,即MongoDB本身是一种组织数据的系统。 - Dan Grossman
2个回答

8

1

尝试

db.createCollection("mycoll", {size:100000})

通常情况下,封顶集合并不是一个好主意,因为它们有一些限制;您无法从中删除或更新文档以使其变得更大 - 文档无法增长。 - Scott Hernandez
创建集合时,是否创建固定大小的集合?如果我说 capped: false 呢? - Falcon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接