Det bästa sättet att lösa detta är att lagra protokollet också separat. Men du kan komma runt detta med aggregeringsramverket, även om det inte är det kommer att gå väldigt snabbt:
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örsta steget $project
, vi beräknar minuterna från hour * 60 + min
som vi sedan matchar mot i det andra steget:$match
.