本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
$dateDiff
5.0 版的新功能
Elastic 叢集不支援。
$dateDiff 彙總運算子會以指定的單位計算兩個日期之間的差異。它會傳回開始和結束日期之間跨越的單位邊界數目。
參數
-
startDate:開始日期表達式。 -
endDate:結束日期表達式。 -
unit:差異的時間單位。支援的單位為year、quarter、month、week、day、hourminute、、second和millisecond。
範例 (MongoDB Shell)
下列範例示範如何使用 $dateDiff運算子來計算訂單置放和交付之間的天數。
建立範例文件
db.shipments.insertMany([ { orderId: 1001, orderDate: ISODate("2025-01-10T08:00:00Z"), deliveryDate: ISODate("2025-01-15T14:30:00Z") }, { orderId: 1002, orderDate: ISODate("2025-02-05T10:00:00Z"), deliveryDate: ISODate("2025-02-12T16:45:00Z") } ]);
查詢範例
db.shipments.aggregate([ { $project: { orderId: 1, orderDate: 1, deliveryDate: 1, daysToDeliver: { $dateDiff: { startDate: "$orderDate", endDate: "$deliveryDate", unit: "day" } } } } ]);
輸出
[
{
_id: ObjectId('6924a5f2d66dcae121d29517'),
orderId: 1001,
orderDate: ISODate('2025-01-10T08:00:00.000Z'),
deliveryDate: ISODate('2025-01-15T14:30:00.000Z'),
daysToDeliver: 5
},
{
_id: ObjectId('6924a5f2d66dcae121d29518'),
orderId: 1002,
orderDate: ISODate('2025-02-05T10:00:00.000Z'),
deliveryDate: ISODate('2025-02-12T16:45:00.000Z'),
daysToDeliver: 7
}
]
程式碼範例
若要檢視使用 $dateDiff命令的程式碼範例,請選擇您要使用的語言標籤: