在指定日期获取最近的条目

时间:2014-10-18 09:34:40

标签: mongodb aggregation-framework

我在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"这意味着它消耗了大量的内存。

0 个答案:

没有答案