$時間
演算子は集計パイプラインにのみ適用され、 find()
には適用されません クエリ。したがって、集計では、パイプラインには2つのステップがあります。 $ project
これにより、時間の部分と次のステージを保持する新しいフィールドが作成されます $ match
次に、ドキュメントをクエリします。
したがって、最終的な集計操作は次のようになります。
var pipeline = [
{
"$project": {
"hour": { "$hour": "$date" },
"date": 1
}
},
{
"$match": {
"hour": { "$gt": 4, "$lt": 8}
}
}
]
db.collection.aggregate(pipeline);