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 中检索:
- 超过1h的行程有多少?
您可以使用以下聚合代码:
[{$addFields: {
travelTime: {$abs:{$subtract:[{ $toLong:'$stopTime'},{ $toLong:'$startTime'}]}}
}}, {$match: {
travelTime:{$gt:3600000}
}}, {}]
这里我们采用以毫秒为单位的绝对时差,并检查它是否大于一小时 (3600000)
假设我有一个包含多个文档的旅行集合,
如:
{
"_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 中检索:
- 超过1h的行程有多少?
您可以使用以下聚合代码:
[{$addFields: {
travelTime: {$abs:{$subtract:[{ $toLong:'$stopTime'},{ $toLong:'$startTime'}]}}
}}, {$match: {
travelTime:{$gt:3600000}
}}, {}]
这里我们采用以毫秒为单位的绝对时差,并检查它是否大于一小时 (3600000)