聚合函数与手动计数

时间:2016-08-18 13:11:26

标签: mongodb mongodb-query

我有网上收集的门票收藏,现在我有大约20,000张门票,但这个系列最多可以上100万张。

我想知道公司明智地关闭了多少张门票。

我有两种方式:

  1. 在db中存储票证,然后使用聚合函数
  2. 在获取门票时我使用计数器
  3. 手动计算

    告诉我哪条路好?

    P.S集合功能是否代价高昂?它是否会降低数据库性能?

2 个答案:

答案 0 :(得分:0)

可能有不同的方法,但我当然不打算在这个关于运行时的大量数据上进行聚合,也不建议你预先计算并丢弃api数据。

我将创建一个集合以保留所有api数据,然后创建一个仅包含开始和结束票据的汇总表,这样就可以保留您的数据,从而保持您的表现。

然而,聚合框架成本很高,而且在这么多数据上你明确需要规范allowDiskUse: <boolean>和`

  

在执行聚合时,它会减慢collection而不是速度   数据库,因为wiredTiger Storage Engine没有锁定数据库,而是锁定在文档级别以进行读写操作。   `

WiredTiger - MongoDB

答案 1 :(得分:0)

对该字段进行索引,该字段显示是否已被操作并执行计数(或全局计数,我不明白您的意思是“公司明智地公开关闭”)。

会很快,你不需要聚合来执行这个简单的计数哈哈