Dotaz nepřináší žádné výsledky, protože $hour
operátor se používá pouze v agregačním kanálu, nikoli find()
dotaz. Takže ve vaší agregaci má váš kanál dva kroky, $project
což vytvoří nové pole, které obsahuje hodinovou část a další fázi $match
který se poté dotáže na dokumenty.
Vaše konečná operace agregace tedy bude vypadat takto:
var pipeline = [
{
"$project": {
"hour": { "$hour": "$date" },
"date": 1
}
},
{
"$match": {
"hour": { "$gt": 4, "$lt": 8}
}
}
]
db.collection.aggregate(pipeline);