MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

PyMongo -- iteração do cursor


Você já considerou uma abordagem 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

Basicamente, contanto que você tenha RAM suficiente para armazenar seus conjuntos de resultados, você poderá retirá-los dos cursores e segurá-los antes do processamento. Isso provavelmente não será significativamente mais rápido, mas reduzirá qualquer lentidão especificamente dos cursores e liberará você para processar seus dados em paralelo, se estiver configurado para isso.