Truy vấn không mang lại bất kỳ kết quả nào vì mã <> $ giờ
toán tử chỉ được áp dụng trong đường dẫn tổng hợp, không phải find ()
truy vấn. Vì vậy, quy trình tổng hợp của bạn có hai bước, $ project
sẽ tạo một trường mới chứa phần giờ và giai đoạn tiếp theo $ match
sau đó truy vấn các tài liệu.
Do đó, hoạt động tổng hợp cuối cùng của bạn sẽ như thế này:
var pipeline = [
{
"$project": {
"hour": { "$hour": "$date" },
"date": 1
}
},
{
"$match": {
"hour": { "$gt": 4, "$lt": 8}
}
}
]
db.collection.aggregate(pipeline);