Mongodb: consulta basada en el tiempo en formato ISODate

Supongamos que los documentos de muestra en la base de datos de Mongodb son los siguientes:

 { "date" : ISODate("2015-11-09T05:58:19.474Z") }
 { "date" : ISODate("2014-10-25T07:30:00.241Z") }
 { "date" : ISODate("2015-11-30T15:24:00.251Z") }
 { "date" : ISODate("2012-01-10T18:36:00.101Z") }

Esperado:

 { "date" : ISODate("2015-11-09T05:58:19.474Z") }
 { "date" : ISODate("2014-10-25T07:30:00.241Z") }

Estoy interesado en encontrar los documentos cuya hora en el campo "fecha" es entre las 04:00 y las 08:00 independientemente del día, mes y año. La consulta indirecta debe coincidir con cualquier "AAAA-MM-DDT" en el campo de fecha.

Mi enfoque sería, consultar todos los documentos dentro de la duración presunta de las fechas desde el nodo y luego, para cada documento que coincida con la consulta, comparar el campo "fecha" del documento con "aaaa-MM-DDT" + "required_time" ("AAAA- MM-DD se copia del "campo de fecha" de cada documento para comparar convirtiéndolo en moment () y obtener mes, fecha y año ") usando el módulo moment.js.

¿Hay alguna forma de consultar para obtener directamente los mismos resultados?

Nota: estoy usando nodejs para conectarme a mongodb