sql >> Databasteknik >  >> NoSQL >> MongoDB

PyMongo -- marköriteration

Har du övervägt ett tillvägagångssätt som:

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

Alternativt något som:

# 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

I grund och botten, så länge du har tillräckligt med RAM-minne för att lagra dina resultatuppsättningar, bör du kunna dra dem från markörerna och hålla fast vid dem innan bearbetning. Det här kommer sannolikt inte att gå nämnvärt snabbare, men det kommer att mildra eventuell nedgång specifikt av markörerna och gör att du kan behandla dina data parallellt om du är inställd på det.



  1. Det gick inte att starta Redis-servern på grund av konfigurationsfilfel

  2. Lagra och hämta JavaScript-objekt i/från MongoDB

  3. Uppdatera MongoDB-samlingen med $toLower

  4. Kan jag göra en textfråga med mongodb c#-drivrutinen