私はmongoDBデータを調べるためのウェブサイトを行っています。私のデータベースには、スマートフォンから捕捉したGPS測定値が保存されています。私はこれらの測定値を探索するためにさまざまなクエリを使用しています。私は日ごとにグループ化して測定値を数える1つのクエリを持っています。別のクエリでは、各種類のスマートフォン(iOS、Android、)の測定数がカウントされます。など。
これらのクエリは、すべて集約パイプラインで同じ$ matchパラメータを共有します。このパイプラインでは、時間間隔および地理的エリアに焦点を合わせるために測定をフィルタリングします。
$一致で得られたサブセットをキャッシュに保存する方法は、毎回このフィルタを適用する必要はありませんか?
私のクエリの応答時間を最適化したい。 1つのクエリの
サンプル:
cursor = db.myCollection.aggregate(
[
{
"$match":
{
"$and": [{"t": {"$gt": tMin, "$lt": tMax}, "location":{"$geoWithin":{"$geometry":square}}}]
}
},
{
"$group":
{
"_id": {"hourGroup": "$tHour"},
"count": {"$sum": 1}
}
}
]
)
私はキャッシュにその結果を維持したい:
"$match":
{
"$and": [{"t": {"$gt": tMin, "$lt": tMax}, "location":{"$geoWithin":{"$geometry":square}}}]
}
私はそれを行う方法がわかりません。 – SwissFr