MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

PyMongo -- iterazione del cursore

Hai considerato un approccio come:

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

In alternativa, qualcosa come:

# 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

Fondamentalmente, finché hai RAM sufficiente per memorizzare i tuoi set di risultati, dovresti essere in grado di estrarli dai cursori e tenerli su prima dell'elaborazione. È probabile che non sia significativamente più veloce, ma mitigherà qualsiasi rallentamento in particolare dei cursori e ti libererà di elaborare i tuoi dati in parallelo se sei configurato per questo.