$dateAdd - Amazon DocumentDB

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.

$dateAdd

Novedades de la versión 5.0

El operador de $dateAdd agregación de Amazon DocumentDB le permite añadir una duración a un valor de fecha y hora.

Parámetros

  • date: un valor de fecha y hora al que añadir una duración.

  • duration: la duración que se va a añadir al date valor. Se puede especificar como un objeto con claves para yearsmonths,weeks, dayshours,minutes, yseconds.

  • timezone: (opcional) La zona horaria que se utilizará al realizar la suma de fechas. Si no se especifica, se utiliza la zona horaria predeterminada del clúster de Amazon DocumentDB.

Ejemplo (MongoDB Shell)

El siguiente ejemplo muestra cómo utilizar el $dateAdd operador para añadir 2 días y 12 horas a una fecha.

Cree documentos de muestra

db.events.insertMany([ { _id: 1, eventDate: ISODate("2023-04-01T10:00:00Z") }, { _id: 2, eventDate: ISODate("2023-04-02T12:00:00Z") }, { _id: 3, eventDate: ISODate("2023-04-03T14:00:00Z") } ]);

Ejemplo de consulta

db.events.aggregate([ { $project: { _id: 1, eventDate: 1, eventDatePlustwodaysandtwelvehours: { $dateAdd: { startDate: { $dateAdd: { startDate: "$eventDate", unit: "day", amount: 2 } }, unit: "hour", amount: 12 } } } } ])

Salida

[ { "_id": 1, "eventDate": "2023-04-01T10:00:00Z", "eventDatePlustwodaysandtwelvehours": ISODate("2023-04-03T22:00:00Z)" }, { "_id": 2, "eventDate": "2023-04-02T12:00:00Z", "eventDatePlustwodaysandtwelvehours": ISODate("2023-04-05T00:00:00Z)" }, { "_id": 3, "eventDate": "2023-04-03T14:00:00Z", "eventDatePlustwodaysandtwelvehours": ISODate("2023-04-06T02:00:00Z)" } ]

Ejemplos de código

Para ver un ejemplo de código para usar el $dateAdd comando, elija la pestaña del idioma que desee 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 collection = db.collection('events'); const result = await collection.aggregate([ { $project: { _id: 1, eventDate: 1, eventDatePlustwodaysandtwelvehours: { $dateAdd: { startDate: { $dateAdd: { startDate: "$eventDate", unit: "day", amount: 2 } }, unit: "hour", amount: 12 } } } } ]).toArray(); console.log(result); await client.close(); } example();
Python
from pymongo import MongoClient from bson.date_time import datetime 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'] collection = db['events'] result = list(collection.aggregate([ { '$project': { '_id': 1, 'eventDate': 1, 'eventDatePlustwodaysandtwelvehours': { '$dateAdd': { 'startDate': { '$dateAdd' : { 'startDate': '$eventDate', 'unit': 'day', 'amount': 2, } }, 'unit': 'hour', 'amount': 12, } } } } ])) print(result) client.close() example()