我们的应用程序计划将MongoDB用于报告。
我们的报告基于时间(原始数据是不同的事件)。
我们正在考虑每天创建一个单独的集合,因此当我们仅需要查询,汇总和排序特定日期的事件时,就不需要查询整个大型集合。
一个问题是这种设计是否有意义。
另一个问题是,如果我们需要对多个集合中的事件进行汇总和排序,例如一周,该怎么办?
MongoDB支持吗?如果可以,应该怎么做才能在性能方面保持高效?
答案 0 :(得分:0)
我们正在考虑每天创建一个单独的集合,因此当我们只需要查询,汇总和排序特定日期的事件时,就不需要查询整个大型集合。
一个问题是这种设计是否有意义。
尽管使用适当的索引,但mongoDB的大型集合应该不会有问题。 您可以在此处了解更多信息:MongoDB indexes
另一个问题是,如果我们需要对多个集合中的事件进行汇总和排序,例如一周,该怎么办?
MongoDB支持吗?如果可以-应该怎么做才能在性能方面保持高效?
如果您愿意,可以使用聚合管道和$facet
一次运行多个查询。但是,这可能会变得有些棘手,因为您必须根据查询参数生成集合名称。实际上,我认为这可能会更慢并且更容易出错。所以我不推荐这种方法。