MongoDB 指南针:按日期筛选和查询

MongoDB Compass : filter and query by date

假设我有一个包含多个文档的旅行集合,

{
    "_id": {
        "$oid": "27637b4h6u7y897ba9021bn2"
    },
    "startTime": {
        "$date": "2021-05-04T13:55:38.286Z"
    }
    "stopTime": {
         "$date": "2021-05-04T11:55:38.286Z"
    }
}

{
    "_id": {
        "$oid": "2532b4h6u7y897ba9021bn2"
    },
    "startTime": {
        "$date": "2021-05-04T12:55:38.286Z"
    }
    "stopTime": {
         "$date": "2021-05-04T11:55:38.286Z"
    }
}

我应该写什么查询,如果可能的话在 mongoCompass 中检索:

您可以使用以下聚合代码:

[{$addFields: {
  travelTime: {$abs:{$subtract:[{ $toLong:'$stopTime'},{ $toLong:'$startTime'}]}}
}}, {$match: {
  travelTime:{$gt:3600000}
}}, {}]

这里我们采用以毫秒为单位的绝对时差,并检查它是否大于一小时 (3600000)