sql >> Base de Datos >  >> NoSQL >> MongoDB

PyMongo -- iteración del cursor

¿Ha considerado un enfoque como:

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

Alternativamente, algo como:

# 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

Básicamente, siempre que tenga suficiente RAM para almacenar sus conjuntos de resultados, debería poder sacarlos de los cursores y mantenerlos antes de procesarlos. No es probable que esto sea significativamente más rápido, pero mitigará cualquier ralentización específicamente de los cursores y lo liberará para procesar sus datos en paralelo si está configurado para eso.