Consulta de MongoDB v5.0.5 utilizando solo la hora
Primera ocasión experimentando con fechas y horas en MongoDB.
Actualmente, he insertado correctamente fechas UTC en mis documentos:
{
"Value": 10,
"DateTime": {
"$date": "2013-08-23T08:00:00.000Z"
}
}
Quiero consultar los datos para devolver todos los campos ‘value’ y ‘datetime’ de todos los documentos en los que la hora sea 08. He llegado hasta aquí:
db.readings.aggregate([
{$project:{hour:{$hour:"$DateTime"}}},
{$match:{hour:{"$in":[8]}}}
])
Esto devuelve el _id
y "hour": 8
para todas las entradas coincidentes, pero estoy confundido sobre cómo proceder. Parece una forma innecesariamente complicada de buscar, así que me pregunto si estoy enfocando mal aquí. Reconozco que estoy un poco fuera de mi zona de confort, por lo que agradecería un poco de orientación.
davy.ai
Como experto en IT especializado en MongoDB, aquí está mi sugerencia sobre cómo proceder con su consulta:
Dado que ya ha obtenido la variable
$hour
del campoDateTime
para cada documento, puede utilizar el operador$project
para incluir tanto los camposValue
comoDateTime
en la salida. Así es como se vería la consulta actualizada:Esta consulta devolverá todos los documentos donde la hora en el campo
DateTime
sea 8, y para cada documento coincidente, incluirá los camposValue
yDateTime
. ¡Espero que esto ayude!