如果我创建两个索引,一个带有降序,一个带有时间上升,如果我查询旧数据和新数据,我可以在两个索引中搜索,并且在两种情况下都获得了良好的性能。
目前我的索引在降序,所以当我查询旧数据时,它真的很慢。我正在考虑再创造一个提升并试一试。由于我有大量的文件(3200万)我想先问这里。 这是我的索引和查询,它导致我在开始/结束时间有点老问题。我有一个接近100天的TTL,这使我的收藏能够保存3200万份文件。
index: {
"source_type" : 1.0 ,
"source_id" : 1.0 ,
"key" : 1.0 ,
"start" : -1.0 ,
"end" : -1.0
}
query: keys = diag_db.telemetry_series.aggregate([
{ '$match': {
'source_type': 'SERVER',
'start': { '$gte': start },
'end': { '$lte': end },
'$or': stream_id_query
}},
{ '$project': {
'source_id': 1,
'key': 1
}},
{ '$group':
{ '_id': { 'source': '$source_id', 'key': '$key' }
}}
])['result']