在 MongoDB 中,可以使用聚合管道框架中的 $match
管道操作符進行時間比較和計算。
以下是一些常用的時間比較和計算方法:
$cmp
管道操作符來比較兩個日期字段的大小。例如,可以比較兩個日期字段 date1
和 date2
:db.collection.aggregate([
{
$project: {
dateComparison: { $cmp: ["$date1", "$date2"] }
}
}
])
此操作將返回一個 dateComparison
字段,它是一個數字,表示 date1
和 date2
的比較結果。如果 date1
大于 date2
,則返回正數;如果 date1
等于 date2
,則返回 0;如果 date1
小于 date2
,則返回負數。
$cmp
管道操作符和 $date
運算符來比較日期字段與當前日期的大小。例如,可以比較日期字段 date
與當前日期的大小:db.collection.aggregate([
{
$project: {
dateComparison: { $cmp: ["$date", "$$NOW"] }
}
}
])
此操作將返回一個 dateComparison
字段,它是一個數字,表示 date
和當前日期的比較結果。如果 date
大于當前日期,返回正數;如果 date
等于當前日期,返回 0;如果 date
小于當前日期,返回負數。
$subtract
管道操作符來計算兩個日期之間的差值。例如,可以計算日期字段 date
與當前日期之間的天數差:db.collection.aggregate([
{
$project: {
daysDifference: {
$divide: [
{ $subtract: ["$$NOW", "$date"] },
1000 * 60 * 60 * 24
]
}
}
}
])
此操作將返回一個 daysDifference
字段,它是一個數字,表示 date
與當前日期之間的天數差。
這些是一些常用的方法,可以根據具體需求進行適當修改和組合使用。另外,還可以使用其他聚合操作符和運算符來實現更復雜的時間比較和計算邏輯。