MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB – Abfragen zwischen einem Zeitbereich von Stunden

Nun, der beste Weg, dies zu lösen, ist speichern die Minuten auch separat. Aber das kann man mit dem Aggregation Framework umgehen, obwohl das nicht ist wird sehr schnell gehen:

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

Im ersten Schritt $project , berechnen wir die Minuten aus hour * 60 + min die wir dann im zweiten Schritt abgleichen:$match .