Den bedste måde at løse dette på er at gemme også referaterne separat. Men du kan komme uden om dette med aggregeringsrammen, selvom det ikke er det kommer til at gå meget hurtigt:
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 } } }
] );
I det første trin $project
, beregner vi minutter fra hour * 60 + min
som vi så matcher mod i andet trin:$match
.