Доброе утро.
Ситуация: я получаю из Mongodb ряд записей по нужным мне параметрам, например:
tasks_query = task_base.find({
"$and": [{
"order_id": x
}, {
"site": y
}, {
"category": z
}]
})
Затем мне нужно несколько тысяч раз циклками пройтись по этим данным в цикле, делая выборку из Cursor по определенному параметру, образно:
for task in task_query:
if task['order_id'] = 234:
return task['category']
Суть: я не хочу делать несколько тысяч обращений в базу, а хочу получить одну большую выборку в память, а потом уже делать итерации по ней. Но:
- Если я превращу выборку из базы в список словарей, мне придется каждый раз проверять всю выборку for циклами, чтобы найти нужное, что очень долго и ресурсоемко
- При превращении в словарь будет +- то же самое, ибо индексы в разных выборках разные.
Вопрос: если я просто сохраню полученный Mongo Cursor в переменную, то смогу ли я делать выборку из него через find() как из обычной базы, без необходимости каждый раз обращаться в базу?
Если есть какое-то другое решение (например, другая струткура данных, поддерживающая индексы) или я упустил что-то важное, буду благодарен за любой совет :)