我正在为我的数据架构建模,我不确定我的思维过程是否有意义。所以我想我可能会问一些比较有经验的MongoDB人员:
让我们假设我的应用程序每天产生多达10.000个事件文档。我想以时间为基础访问。就像:“给我这三天的所有活动!”。
我在大学收集的RDBMS知识首先告诉我:“做一个事件收集并给每个文件提供事件的属性'日期'。完成。”
但后来我想到了每天收集的想法。然后我可以通过调用其相应的集合来获取一天中的所有事件,从而非常快速地访问这些事件。
这有意义吗?在不牺牲速度/性能的情况下,我可以拥有数百/数千个收藏吗?
感谢您的建议: - )
答案 0 :(得分:6)
每天10.000个文件不是很多。在一年的过程中,这是3.65m的文件。这当然不是一个非常小的集合,但我认为打破它们没有多大意义。
此特定情况的缺点是
但是,使用大量集合是可能的,尽管有limits you should understand.正如文档所解释的那样,您可以拥有12,000个集合,每个集合都有一个索引,每个集合都有默认设置。有关详细信息,请参阅此处。
服务器密度博客论述了他们的方法,他们也使用了a lot of collections,但是他们嚼了6.5亿个文档,他们声称它在性能方面没有太大的区别。