Welnu, de beste manier om dit op te lossen is door op te slaan ook de minuten apart. Maar je kunt dit omzeilen met het aggregatieraamwerk, hoewel dat niet is gaat erg snel:
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 } } }
] );
In de eerste stap $project
, berekenen we de minuten vanaf hour * 60 + min
waar we vervolgens in de tweede stap tegen matchen:$match
.