我使用MongoDB并将我的集合存储在我存储地理点的地方,例如:
{
transport_id: '1',
coords:[40.233,50.323],
timestamp: 12312312
}
我需要获取给定区域的所有点($ geoWithin $ box)并找到每个传输的最大时间戳。我不知道如何做到这一点,我正在尝试使用$ match $ geoWithin的聚合框架,但我不确定我的行为的正确性:
db.collection.aggregate(
[ { $match:
{
coords: { $geoWithin: { $box: [ [ 0, 0 ], [ 100, 100 ] ] } }
}
},
{ $group:
{
_id: "$transportId",
timestamp: { $max: "$timestamp"}
}
}
]
我的输出:
{ _id: '51523', timestamp: 33068000 },
{ _id: '51925', timestamp: 45731000 },
{ _id: '51391', timestamp: 50560000 },
{ _id: '51980', timestamp: 71997000 },
...
一切正常,但我需要有最大时间戳的点数。有没有办法添加“coords”字段或更正确的查询。