क्वेरी कोई परिणाम नहीं दे रही है क्योंकि $hour
ऑपरेटर केवल एकत्रीकरण पाइपलाइन में लागू होता है, न कि find()
सवाल। तो आपके एकत्रीकरण में आपकी पाइपलाइन के दो चरण हैं, $project
जो एक नया क्षेत्र बनाता है जिसमें घंटे का हिस्सा और अगला चरण होता है $match
जो तब दस्तावेजों पर सवाल उठाता है।
इस प्रकार आपका अंतिम एकत्रीकरण कार्य इस प्रकार होगा:
var pipeline = [
{
"$project": {
"hour": { "$hour": "$date" },
"date": 1
}
},
{
"$match": {
"hour": { "$gt": 4, "$lt": 8}
}
}
]
db.collection.aggregate(pipeline);