【问题标题】:MongoDB Charts - Cumulative document growth over timeMongoDB 图表 - 随着时间的推移累积文档增长
【发布时间】:2022-02-10 23:53:15
【问题描述】:

我有一个图集集群,并将图表连接到它。我对数据可视化(或构建仪表板)的经验为零,我想绘制我的数据库中随时间变化的文档数量。例如,如果在 1 月 10 日创建了文档,而在 2 月又创建了 10 个文档,则图表应显示 10 表示 1 月,20 表示 2 月。

我知道_id 字段在创建文档时有信息,但我不知道如何在图表中显示它。到目前为止,我所拥有的只是在 y 轴上使用 _id 的文档计数。

完成我想做的事情的最佳方法是什么?使用条形图是在这种情况下使用的最佳可视化方式吗?

此外,出于某种原因,每当我创建图表时,我都会收到警告说“查询定位:扫描的对象/返回的对象已超过 1000”。有没有办法阻止这种情况发生?

【问题讨论】:

    标签: mongodb-atlas mongodb-charts


    【解决方案1】:

    问题分为两部分。我将分别回答每个问题。

    首先关于显示购物车

    你是对的,_id 包含所有信息,它是编码的。因此,您必须对其进行解码以获取这些属性。鉴于我们必须在聚合管道中执行此操作,这可能很快就会变得非常复杂。

    我宁愿推荐引入一个名为created_at 的字段,它是插入文档时生成的时间戳。那么你所需要的只是created_at 上的一个简单的 $group 和计数。这样可以很好地显示数据(条形图或折线图就足够了)。

    第二 - 从 Atlas 收到的关于查询目标率的警报

    我们首先需要了解警报的含义。它本质上意味着没有的比率。从磁盘扫描的文档数量与否。从磁盘返回的文档超过 1000 个。这意味着您在磁盘中扫描的记录比您需要的多 1000 倍以上 - 这可以解释为索引不佳的查询。

    您可以通过为您在聚合中使用的$match 过滤器创建支持索引来简单地解决此问题。如果没有$match,那么不幸的是,您将不得不接受警报,因为在这种情况下不会选择任何索引。

    【讨论】:

      【解决方案2】:

      基本上你需要做到以下几点:

      1. 由于要将 _id 字段视为日期,因此需要单击 _id 字段旁边的“...”按钮并选择转换类型,然后选择日期。

      2. 现在确保您选择了柱形图

      3. 将 _id 字段(现在应该显示为日期)拖到 X 轴上。保持“分箱”开关处于打开状态并选择您想要的分箱周期(月份是默认值,并且似乎是您想要的)。

      4. 现在也将 _id 字段拖到 Y 轴上。保持选中默认的 COUNT 聚合。该图表现在应该显示每个月创建的文档数量。

      5. 最后,启用“比较期间”切换并保留默认的“累积总计”选项。

      下面是结果“应该”的样子。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-22
        • 1970-01-01
        • 1970-01-01
        • 2021-06-21
        • 2015-06-01
        相关资源
        最近更新 更多