MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB - Consulta entre um intervalo de horas


Bem, a melhor maneira de resolver isso é armazenar os minutos separadamente também. Mas você pode contornar isso com a estrutura de agregação, embora isso não vai ser muito 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 } } }
] );

Na primeira etapa $project , calculamos os minutos a partir de hour * 60 + min que comparamos na segunda etapa:$match .