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á.
$hour
O $hour operador extrai o componente de hora de um campo de data ou carimbo de data/hora.
Parâmetros
-
dateExpression: a data na qual o operador é aplicado. Isso deve ser resolvido para uma data BSON válida (por exemplo, um campo como $createdAt ou uma data literal).
Um parâmetro também pode ser especificado como um documento no seguinte formato:
{data:<dateExpression>, fuso horário:<timezoneExpression>}
Isso permite aplicar operações de data com reconhecimento de fuso horário.
- `<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.
Exemplo (MongoDB Shell)
O exemplo a seguir demonstra como usar o $hour operador para extrair o componente de hora de um campo de data e agrupar os dados adequadamente.
Crie documentos de amostra
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") } ]);
Exemplo de consulta
db.events.aggregate([ { $project: { hour: { $hour: "$timestamp" } } }, { $group: { _id: "$hour", count: { $sum: 1 } } }, { $sort: { _id: 1 } } ]);
Saída
[
{ "_id": 8, "count": 1 },
{ "_id": 10, "count": 1 },
{ "_id": 12, "count": 1 },
{ "_id": 16, "count": 1 },
{ "_id": 23, "count": 1 }
]
Essa consulta agrupa os eventos pelo componente horário do timestamp campo e conta o número de eventos para cada hora.
Exemplos de código
Para ver um exemplo de código para usar o $hour comando, escolha a guia do idioma que você deseja usar: