As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
$dateDiff
Novo da versão 5.0
Não é compatível com o cluster elástico.
O operador $dateDiff de agregação calcula a diferença entre duas datas em unidades especificadas. Ele retorna o número de limites de unidades cruzados entre as datas de início e término.
Parâmetros
-
startDate: A expressão da data inicial. -
endDate: A expressão da data final. -
unit: A unidade de tempo para a diferença. As unidades suportadas sãoyearquartermonth,week,day,hourminute,second,,milliseconde.
Exemplo (MongoDB Shell)
O exemplo a seguir demonstra como usar o $dateDiff operador para calcular o número de dias entre a realização do pedido e a entrega.
Crie documentos de amostra
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") } ]);
Exemplo de consulta
db.shipments.aggregate([ { $project: { orderId: 1, orderDate: 1, deliveryDate: 1, daysToDeliver: { $dateDiff: { startDate: "$orderDate", endDate: "$deliveryDate", unit: "day" } } } } ]);
Saída
[
{
_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
}
]
Exemplos de código
Para ver um exemplo de código para usar o $dateDiff comando, escolha a guia do idioma que você deseja usar: