我的文档架构:
{
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文档!
如何针对我的案子实现最佳性能?
答案 0 :(得分:0)
创建索引{符号:“哈希”,价格:1,时间戳:1}将响应时间减少到足够的1秒。