Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
$DateDiff
Nouveau depuis la version 5.0
Non pris en charge par le cluster Elastic.
L'opérateur $dateDiff d'agrégation calcule la différence entre deux dates dans des unités spécifiées. Elle renvoie le nombre de limites d'unités franchies entre les dates de début et de fin.
Paramètres
-
startDate: expression de la date de début. -
endDate: expression de la date de fin. -
unit: unité de temps correspondant à la différence. Les unités prises en charge sontyearquartermonth,week,day,hour,minute,,second, etmillisecond.
Exemple (MongoDB Shell)
L'exemple suivant montre comment utiliser l'$dateDiffopérateur pour calculer le nombre de jours entre le placement de la commande et la livraison.
Création d'exemples de documents
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") } ]);
Exemple de requête
db.shipments.aggregate([ { $project: { orderId: 1, orderDate: 1, deliveryDate: 1, daysToDeliver: { $dateDiff: { startDate: "$orderDate", endDate: "$deliveryDate", unit: "day" } } } } ]);
Sortie
[
{
_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
}
]
Exemples de code
Pour afficher un exemple de code relatif à l'utilisation de la $dateDiff commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :