MongoDB Compass:按日期筛选和查询

MongoDB Compass:按日期筛选和查询,mongodb,mongodb-query,mongodb-compass,Mongodb,Mongodb Query,Mongodb Compass,假设我有一个旅行收藏,里面有几个文件 例如: { "_id": { "$oid": "27637b4h6u7y897ba9021bn2" }, "startTime": { "$date": "2021-05-04T13:55:38.286Z" } "stopTime": {

假设我有一个旅行收藏,里面有几个文件

例如

{
    "_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中写什么查询来检索:

  • 超过1小时的旅行次数

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

[{$addFields: {
  travelTime: {$abs:{$subtract:[{ $toLong:'$stopTime'},{ $toLong:'$startTime'}]}}
}}, {$match: {
  travelTime:{$gt:3600000}
}}, {}]
这里我们以毫秒为单位计算绝对时差,并检查它是否大于一小时(3600000)

MongoDB Compass手册有一些说明。