$dateDiff - Amazon DocumentDB

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ão year quartermonth,week,day, hourminute,second,, millisecond e.

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:

Node.js
const { MongoClient } = require('mongodb'); async function example() { const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); const db = client.db('test'); const shipments = db.collection('shipments'); const result = await shipments.aggregate([ { $project: { orderId: 1, orderDate: 1, deliveryDate: 1, daysToDeliver: { $dateDiff: { startDate: "$orderDate", endDate: "$deliveryDate", unit: "day" } } } } ]).toArray(); console.log(result); client.close(); } example();
Python
from pymongo import MongoClient def example(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client['test'] shipments = db['shipments'] result = list(shipments.aggregate([ { "$project": { "orderId": 1, "orderDate": 1, "deliveryDate": 1, "daysToDeliver": { "$dateDiff": { "startDate": "$orderDate", "endDate": "$deliveryDate", "unit": "day" } } } } ])) print(result) client.close() example()