Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
$dateDiff
Nuovo dalla versione 5.0
Non supportato dal cluster Elastic.
L'operatore $dateDiff di aggregazione calcola la differenza tra due date in unità specificate. Restituisce il numero di limiti di unità superati tra le date di inizio e di fine.
Parametri
-
startDate: L'espressione della data di inizio. -
endDate: L'espressione della data di fine. -
unit: L'unità di tempo per la differenza. Le unità supportate sonoyearquartermonth,week,day,hour,minute,second, emillisecond.
Esempio (MongoDB Shell)
L'esempio seguente mostra come utilizzare l'$dateDiffoperatore per calcolare il numero di giorni tra l'immissione dell'ordine e la consegna.
Crea documenti di esempio
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") } ]);
Esempio di interrogazione
db.shipments.aggregate([ { $project: { orderId: 1, orderDate: 1, deliveryDate: 1, daysToDeliver: { $dateDiff: { startDate: "$orderDate", endDate: "$deliveryDate", unit: "day" } } } } ]);
Output
[
{
_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
}
]
Esempi di codice
Per visualizzare un esempio di codice per l'utilizzo del $dateDiff comando, scegliete la scheda relativa alla lingua che desiderate utilizzare: