Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
$dateDiff
Novedades de la versión 5.0
No es compatible con el clúster de Elastic.
El operador de $dateDiff agregación calcula la diferencia entre dos fechas en unidades específicas. Devuelve el número de límites de unidades cruzados entre las fechas de inicio y finalización.
Parámetros
-
startDate: la expresión de fecha de inicio. -
endDate: La expresión de fecha final. -
unit: La unidad de tiempo de la diferencia. Las unidades compatibles sonyearquartermonth,week,day,hourminute,second, ymillisecond.
Ejemplo (MongoDB Shell)
El siguiente ejemplo muestra cómo utilizar el $dateDiff operador para calcular el número de días entre la realización del pedido y la entrega.
Cree documentos de muestra
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") } ]);
Ejemplo de consulta
db.shipments.aggregate([ { $project: { orderId: 1, orderDate: 1, deliveryDate: 1, daysToDeliver: { $dateDiff: { startDate: "$orderDate", endDate: "$deliveryDate", unit: "day" } } } } ]);
Salida
[
{
_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
}
]
Ejemplos de código
Para ver un ejemplo de código para usar el $dateDiff comando, elija la pestaña del idioma que desee usar: