首页 > 解决方案 > Mongodb,只查找所有最新的映射记录

问题描述

我有一个 mongodb 集合,其中包含大约 20 亿个数据代表移动设备。当它绑定到我的服务器时,我会生成一个设备ID,由于某些原因,它可能会注册多次,有些可能一个设备可能有多个设备ID(imei)

生成 ID 是集合 ID,因此它是唯一的。收藏就像

id  | imei  | createTime

现在我需要从这个集合中查询所有设备映射,但是对于同一个imei,我需要最新的设备ID。

在 SQL 中我可以写

select id, imei from table join ( select max(createTime), imei from table group by imei) as t2 on(imei, createTime). 

mongodb查询有没有更快的方法?

标签: javamongodbaggregation-framework

解决方案


要在 mongo 中完成分组,您可以使用较旧的group by聚合框架


推荐阅读