我正在使用mongodb 3.6.8。
我有一个集合(称为states
),其中包含一个ObjectId
字段(sensor_id
),一个date
,以及其他一些字段。
我在集合上创建了复合索引:
db.states.createIndex({ "sensor_id" : 1, "date" : 1 });
我正在使用具有匹配阶段的聚合框架,例如:
{
"$match" : {
"sensor_id" : { "$oid" : "5b8fd62c4f0cd13c05296df7"},
"date" : {
"$gte" : { "$date" : "2018-10-06T04:19:00.000Z"},
"$lt" : { "$date" : "2018-10-06T10:19:09.000Z"}
}
}
}
我的问题:随着状态集合变大,即使添加的文档不在匹配过滤器的日期范围之外,管道聚合也越来越慢。 使用此索引,我真的希望性能随着集合的增加而不会有太大变化。
其他信息:
有人可以建议我做些什么,以解释随着馆藏的增长(在$ match的日期范围之外的新文档)性能急剧下降的情况吗?
谢谢。
答案 0 :(得分:0)
已解决。随着时间的流逝,开发的另一个阶段是处理更多数据。索引没问题。