$hour - 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.

$hour

L'$houropérateur extrait le composant horaire d'un champ de date ou d'horodatage.

Paramètres

  • dateExpression: Date à laquelle l'opérateur est appliqué. Cela doit aboutir à une date BSON valide (par exemple, un champ tel que $createdAt ou un littéral de date).

Un paramètre peut également être spécifié sous forme de document au format suivant :

{date :<dateExpression>, fuseau horaire :<timezoneExpression>}

Cela permet d'appliquer des opérations de date tenant compte du fuseau horaire.

- `<tzExpression>`: (optional) The timezone of the operation result. It must be a valid expression that resolves to a string formatted as either an Olson Timezone Identifier or a UTC Offset. If no timezone is provided, the result is in UTC.

Exemple (MongoDB Shell)

L'exemple suivant montre comment utiliser l'$houropérateur pour extraire le composant horaire d'un champ de date et regrouper les données en conséquence.

Création d'exemples de documents

db.events.insertMany([ { timestamp: new Date("2023-04-01T10:30:00Z") }, { timestamp: new Date("2023-04-01T12:45:00Z") }, { timestamp: new Date("2023-04-02T08:15:00Z") }, { timestamp: new Date("2023-04-02T16:20:00Z") }, { timestamp: new Date("2023-04-03T23:59:00Z") } ]);

Exemple de requête

db.events.aggregate([ { $project: { hour: { $hour: "$timestamp" } } }, { $group: { _id: "$hour", count: { $sum: 1 } } }, { $sort: { _id: 1 } } ]);

Sortie

[ { "_id": 8, "count": 1 }, { "_id": 10, "count": 1 }, { "_id": 12, "count": 1 }, { "_id": 16, "count": 1 }, { "_id": 23, "count": 1 } ]

Cette requête regroupe les événements par le composant horaire du timestamp champ et compte le nombre d'événements pour chaque heure.

Exemples de code

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

Node.js
const { MongoClient } = require('mongodb'); async function example() { const client = new MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); try { await client.connect(); const db = client.db('test'); const collection = db.collection('events'); const result = await collection.aggregate([ { $project: { hour: { $hour: "$timestamp" } } }, { $group: { _id: "$hour", count: { $sum: 1 } } }, { $sort: { _id: 1 } } ]).toArray(); console.log(result); } catch (error) { console.error('Error occurred:', error); } finally { await client.close(); } } example();
Python
from pymongo import MongoClient from datetime import datetime def example(): try: 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": { "hour": {"$hour": "$timestamp"} } }, { "$group": { "_id": "$hour", "count": {"$sum": 1} } }, { "$sort": {"_id": 1} } ])) print(result) except Exception as e: print(f"An error occurred: {e}") finally: client.close() example()