在MongoDB中快速计算大量文档的统计信息

时间:2018-10-31 15:36:01

标签: node.js mongodb optimization mongoose nosql

我的文档架构:

  {
    symbol: String,
    exchange: String,
    price: Number,
    amount: Number,
    type: {
        type: String,
        enum: ['buy', 'sell']
    },
    timestamp: Number
}, {
    autoIndex: false,
    id: false,
    versionKey: false
});

我的MongoDb Atlas集群中有40+百万个文档。所有文档都将追加到一个大集合中。

我需要通过至少一个参数-符号计算过滤后的集合中的某些值。 时间戳价格金额的最小和最大范围是可选的。收集filterring后,我必须计算 文件数量取决于类型,金额总和取决于类型,最小/最大/平均价格和数量。此外,取决于筛选集合中的时间戳记和最后文档的时间戳,应创建相对于时间戳范围的折线图数据。

我在Node.js上使用Mongoose ORM,并且find()方法的工作速度非常慢,只能处理100多个〜100K文档!

如何针对我的案子实现最佳性能?

1 个答案:

答案 0 :(得分:0)

创建索引{符号:“哈希”,价格:1,时间戳:1}将响应时间减少到足够的1秒。