Forespørgslen giver ingen resultater, fordi <-koden>$time
operatoren anvendes kun i aggregeringspipelinen, ikke find()
forespørgsel. Så i din aggregering har din pipeline to trin, $projekt
som opretter et nyt felt, der rummer timedelen og den næste fase $match
som derefter forespørger i dokumenterne.
Din endelige aggregeringsoperation vil således være sådan her:
var pipeline = [
{
"$project": {
"hour": { "$hour": "$date" },
"date": 1
}
},
{
"$match": {
"hour": { "$gt": 4, "$lt": 8}
}
}
]
db.collection.aggregate(pipeline);