$dateAjouter - Amazon DocumentDB

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.

$dateAjouter

Nouveau depuis la version 5.0

L'opérateur $dateAdd d'agrégation dans Amazon DocumentDB vous permet d'ajouter une durée à une valeur de date et d'heure.

Paramètres

  • date: valeur de date et d'heure à laquelle ajouter une durée.

  • duration: durée à ajouter à la date valeur. Cela peut être spécifié sous la forme d'un objet avec des touches pour years monthsweeks,days,hours,minutes, etseconds.

  • timezone: (facultatif) Fuseau horaire à utiliser lors de l'ajout de date. S'il n'est pas spécifié, le fuseau horaire par défaut du cluster Amazon DocumentDB est utilisé.

Exemple (MongoDB Shell)

L'exemple suivant montre comment utiliser l'$dateAddopérateur pour ajouter 2 jours et 12 heures à une date.

Création d'exemples de documents

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") } ]);

Exemple de requête

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

Sortie

[ { "_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)" } ]

Exemples de code

Pour afficher un exemple de code d'utilisation de la $dateAdd commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :

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()