MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB - Interrogazione in un intervallo di tempo di ore

Bene, il modo migliore per risolvere questo problema è conservare anche i minuti separatamente. Ma puoi aggirare questo problema con il framework di aggregazione, anche se non sarà molto veloce:

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 } } }
] );

Nel primo passaggio $project , calcoliamo i minuti da hour * 60 + min che poi confrontiamo nel secondo passaggio:$match .