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