Mongodb 使用封顶集合作为管理空间的方式是否安全?

Mongodb 使用封顶集合作为管理空间的方式是否安全?,mongodb,Mongodb,基本上,我想创建一个基于聊天的系统,其中一个功能是为每个会员级别提供更长的聊天历史。我不认为允许收集大于1GB的数据,这似乎有些过分了。然而,保持它们的小尺寸也意味着我不需要担心切分它们 基本上,每个“聊天”都是一个有上限的集合。我们的期望是,如果它们达到了文件存储限制,则旧项目将丢失,这就是封顶集合的工作方式。因此,在我看来,为每个聊天创建一个上限集合将是实现这一目标的简单方法。我将只应用并存储一个id作为集合名称,以便访问它 我有理由不考虑这个方法吗?< /P> < P>听起来你的数据在逻辑

基本上,我想创建一个基于聊天的系统,其中一个功能是为每个会员级别提供更长的聊天历史。我不认为允许收集大于1GB的数据,这似乎有些过分了。然而,保持它们的小尺寸也意味着我不需要担心切分它们

基本上,每个“聊天”都是一个有上限的集合。我们的期望是,如果它们达到了文件存储限制,则旧项目将丢失,这就是封顶集合的工作方式。因此,在我看来,为每个聊天创建一个上限集合将是实现这一目标的简单方法。我将只应用并存储一个id作为集合名称,以便访问它


我有理由不考虑这个方法吗?< /P> < P>听起来你的数据在逻辑上被“代码> ChATDD < /代码>分开了。我不清楚

chatId
的范围是每个用户、每个聊天室还是每个“会员级别”,因此我将在回答中只参考
chatId

这些数据可以存储在一个集合中,在
chatId
上有一个索引,允许您在查找、删除等时轻松区分每个不同的聊天。随着集合大小的增加,您可能会达到无法支持所需非功能的程度。在这一点上,建议进行切分。当然,您可能永远不会达到这一点,一个简单的单一收集方法和合理的索引,托管在硬件上,具有足够的CPU、RAM等,可能满足您的需要。如果不了解卷(当前和未来)、写入吞吐量、典型读取所需的运行时间等,很难说会发生什么

然而,从您的问题来看,似乎最终可能需要分片,并且为了抢占先机,您正在考虑限制您的数据占用

在使用单个集合(无论是否分片)时,可以根据
chatId
实现cap,这需要:

  • 可以根据
    chatId

  • <> LI>对于每一个代码> ChATDD <代码>,超过了允许的CAP,删除最旧的条目和循环,直到存储占用被感谢您的详细响应,原因4和5就足以让我考虑上限的收集方法。