Primera ocasión experimentando con fechas y horas en MongoDB.
Actualmente, he insertado correctamente las fechas UTC en mis documentos:
{ "Value": 10 "DateTime": { "$date": "2013-08-23T08:00:00.000Z" }, }Quiero consultar los datos para devolver todos los campos de 'valor' y fecha y hora para todos los documentos en los que la hora es 08. He llegado tan lejos como:
db.readings.aggregate([{$project:{hour:{$hour:"$DateTime"}}},{$match:{hour:{"$in":[08]}}}]) Lo que devuelve el _id y la "hour": 8 para todas las entradas coincidentes, pero no sé cómo proceder. Parece una forma innecesariamente complicada de buscar, por lo que me pregunto si estoy ladrando al árbol equivocado aquí. Es cierto que estoy algo fuera de mi alcance, por lo que agradecería alguna orientación.
Puede probar el operador de expresión $expr para usar operadores de agregación ( $hour ) en la consulta,
$expr para usar operadores de agregación$hour devolverá una hora a partir de la fecha$eq para hacer coincidir la hora y la hora de entrada 8 db.collection.find({ $expr: { $eq: [ { $hour: "$DateTime" }, 8 ] } })