sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB - Consulta entre un rango de tiempo de horas

Bueno, la mejor forma de solucionar esto es almacenar las actas también por separado. Pero puede evitar esto con el marco de agregación, aunque eso no va a ser muy rápido:

db.so.aggregate( [ 
    { $project: {
        loc: 1,
        vid: 1,
        datetime_recorded: 1, 
        minutes: { $add: [
            { $multiply: [ { $hour: '$datetime_recorded' }, 60 ] }, 
            { $minute: '$datetime_recorded' } 
        ] } 
    } },
    { $match: { 'minutes' : { $gte : 12 * 60, $lt : 16 * 60 } } }
] );

En el primer paso $project , calculamos los minutos desde hour * 60 + min que luego comparamos en el segundo paso:$match .