在MongoDB中进行分组时获取最大值的相关字段

时间:2017-04-11 06:35:04

标签: mongodb

对于下面的SQL,相应的mongo查询是什么,它会获取每个lat的最新文档的longdid

查询:所有设备的最后位置是什么

did  : device id
ts   : time stamp
lat  : latitude 
long : longitude 

SQL查询

  SELECT 
        did , ts, `lat`, `long`
    FROM
        points
            JOIN
        (SELECT 
            MAX(ts) AS maxTs, did
        FROM
            points
        GROUP BY did) MxData ON points.ts = MxData.maxTs
            AND MxData.did = points.did;

下面是Mongo查询,我能够获得设备的最大时间戳,但不知道如何打印相应的lat和long

db.points.aggregate( [{ $group:{_id: "$did", maxTs: { $max: "$ts" }}}]).pretty();

1 个答案:

答案 0 :(得分:1)

我找到了解决方案,查询是

T