Я делаю сайт для изучения данных mongoDB. В моей базе данных хранятся измерения GPS, снятые с смартфонов. Я использую различные запросы для изучения этих измерений. У меня есть один запрос, который группируется по дням и подсчитывает измерения. Другой запрос подсчитывает количество измерений для каждого типа смартфона (iOS, Android,). Etc ..
Все эти запросы имеют одинаковые параметры соответствия $ в конвейере агрегации. В этом конвейере я фильтрую измерение для того, чтобы сфокусироваться с интервалом времени и в географической области.
Есть ли способ сохранить подмножество, полученное в сопоставлении $ в кеше, таким образом, чтобы база данных не требовала применения этого фильтра каждый раз?
Я хочу оптимизировать время отклика моих запросов.
Пример одного запрос:
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