MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

PyMongo - itération du curseur

Avez-vous envisagé une approche telle que :

for line in file
  value = line[a:b]
  cursor = collection.find({"field": value})
  entries = cursor[:] # or pull them out with a loop or comprehension -- just get all the docs
  # then process entries as a list, either singly or in batch

Alternativement, quelque chose comme :

# same loop start
  entries[value] = cursor[:]
# after the loop, all the cursors are out of scope and closed
for value in entries:
  # process entries[value], either singly or in batch

Fondamentalement, tant que vous disposez de suffisamment de RAM pour stocker vos ensembles de résultats, vous devriez pouvoir les retirer des curseurs et les conserver avant le traitement. Ce ne sera probablement pas beaucoup plus rapide, mais cela atténuera tout ralentissement spécifique des curseurs et vous permettra de traiter vos données en parallèle si vous êtes configuré pour cela.