MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

PyMongo – Cursor-Iteration

Haben Sie einen Ansatz in Erwägung gezogen wie:

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

Alternativ so etwas wie:

# 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

Solange Sie genug RAM haben, um Ihre Ergebnismengen zu speichern, sollten Sie sie grundsätzlich von den Cursorn ziehen und vor der Verarbeitung festhalten können. Dies wird wahrscheinlich nicht wesentlich schneller sein, aber es wird jede Verlangsamung speziell der Cursor verringern und Ihnen die Möglichkeit geben, Ihre Daten parallel zu verarbeiten, wenn Sie dafür eingerichtet sind.