La consulta no arroja ningún resultado porque el $hour
el operador solo se aplica en la canalización de agregación, no en find()
consulta. Entonces, en su agregación, su canalización tiene dos pasos, el $project
que crea un nuevo campo que contiene la parte de la hora y la siguiente etapa $match
que luego consulta los documentos.
Por lo tanto, su operación de agregación final será así:
var pipeline = [
{
"$project": {
"hour": { "$hour": "$date" },
"date": 1
}
},
{
"$match": {
"hour": { "$gt": 4, "$lt": 8}
}
}
]
db.collection.aggregate(pipeline);