

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.

# \$1dateSubstract
<a name="dateSubtract"></a>

Nouveau depuis la version 5.0

L'opérateur `$dateSubtract` d'agrégation dans Amazon DocumentDB vous permet de soustraire une durée spécifiée d'une valeur de date.

**Paramètres**
+ `date`: expression de date qui prend la forme d'une date ou d'un horodatage.
+ `subtrahend`: expression de durée qui indique la durée à soustraire de l'`date`expression.
+ `unit`: chaîne qui indique l'unité de temps de l'`subtrahend`expression. Les unités prises en charge sont « année », « trimestre », « mois », « semaine », « jour », « heure », « minute », « seconde » et « milliseconde ».

## Exemple (MongoDB Shell)
<a name="dateSubtract-examples"></a>

L'exemple suivant montre comment utiliser l'`$dateSubtract`opérateur pour calculer la date d'il y a un an à partir de la date actuelle.

**Création d'exemples de documents**

```
db.events.insertOne({
  eventName: "Player joined",
  eventTime: ISODate("2023-04-01T12:00:00Z")
});
```

**Exemple de requête**

```
db.events.aggregate([
  {
    $project: {
      eventName: 1,
      oneYearAgo: {
        $dateSubtract: {
          startDate: "$eventTime",
          amount: 1,
          unit: "year"
        }
      }
    }
  }
])
```

**Sortie**

```
{
  "_id" : ObjectId("64567890abcdef012345678"),
  "eventName" : "Player joined",
  "oneYearAgo" : ISODate("2022-04-01T12:00:00Z")
}
```

## Exemples de code
<a name="dateSubtract-code"></a>

Pour afficher un exemple de code relatif à l'utilisation de la `$dateSubtract` 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 events = db.collection('events');

  const result = await events.aggregate([
    {
      $project: {
        eventName: 1,
        oneYearAgo: {
          $dateSubtract: {
            startDate: "$eventTime",
            amount: 1,
            unit: "year"
          }
        }
      }
    }
  ]).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']
    events = db['events']

    result = list(events.aggregate([
        {
            '$project': {
                'eventName': 1,
                'oneYearAgo': {
                    '$dateSubtract': {
                        'startDate': '$eventTime',
                        'amount': 1,
                        'unit': 'year'
                    }
                }
            }
        }
    ]))

    print(result)
    client.close()

example()
```

------