sql >> Databáze >  >> NoSQL >> MongoDB

PyMongo -- iterace kurzoru

Uvažovali jste o přístupu jako:

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

Případně něco jako:

# 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

V zásadě, pokud máte dostatek paměti RAM pro uložení sad výsledků, měli byste být schopni je vytáhnout z kurzorů a držet je před zpracováním. To pravděpodobně nebude výrazně rychlejší, ale zmírní to jakékoli zpomalení konkrétně kurzorů a umožní vám zpracovávat data paralelně, pokud jste na to nastaveni.



  1. MongoDB $concat

  2. Šifrování MongoDB Data-at-Rest

  3. MongoDB $atan

  4. Výjimka MongoSocketReadException:Předčasně dosaženo konce streamu (po určité době nečinnosti)