我在MongoDB中有一个集合vehiclelocation
,如下所示:
{
_id: ...,
Vehicle: ...,
Location: ....,
Date: ....
}
它包含车辆位置的历史记录。
我的查询有两个条件:位置和日期。 我需要获取在给定日期的最后已知位置是我的标准中的车辆列表。 我能够在SQL中做到这一点,但我试图迁移到Mongo,并且无法弄清楚如何编写它。
更简单的替代方案是在给定日期获得车辆的最后已知位置。 对于一辆特定的车辆来说,这很容易做到,但我不知道如何在一次查询中为所有车辆做到这一点。
有没有办法用MongoDB做到这一点?
修改
我试过了:
db.runCommand( {aggregate:"vehiclelocationhistory", pipeline: [
{$match: {DateTime:{$lte:ISODate("2013-08-02T10:50:00Z")}}},
{$sort:{DateTime:-1}},
{$group:{_id:"$VehicleId", LocationId: {$first: "$LocationId"} } }], allowDiskUse:true})
但我必须添加" allowDiskUse"这意味着它消耗了大量的内存。