mongodb的分组求最大值,量太大,耗时优化?

情形:一个表每天至少3千万条数据。一共有上千种类型。现在能不能一次快速读取上千种类型的的当天最大值,也就是当天最后记录时间那条。也许是15点。也许是23点。不定。尽可能使千种类型一次分组求出来。而不是分开每种类型,然后排序,然后取最后一条数据的方法。

db.SEC_2018_05_14.aggregate([{ $group: { _id: {dev_id: "$dev_id", data_id: "$data_id"},lastObj: { $last: "$$ROOT" } } } ,
{$project{_id:0,dev_id:"$lastObj.dev_id",data_id:"$lastObj.data_id",data_value:"$lastObj.data_value",fdate:"$lastObj.fdate"}} ]).pretty()

dev_id,data_id,fdate 是一个索引。
fdate是一个索引。

如上,虽然是走了索引,250万要五六秒,我想如果是3千万,会用时不少。

有什么好的办法可以秒出吗?

阅读 2.7k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进