2016-06-24 10 views
1

Ich versuche, eine riesige (5GB) Mongo-Datenbank zu kratzen, also begrenze ich die Batch-Größe, um überschaubar zu sein. Allerdings bekomme ich immer noch einen Timeout Fehler:/Python Mongodb Begrenzung nach Losgröße Time out

Mein mongo Wissen ist zugegebenermaßen nicht das beste, also wenn ich etwas total dummes mache, lass es mich wissen! Ich habe bereits die Dokumentation und andere Fragen durchsucht und keine der Antworten hat geholfen. Hier

ist, was ich versuche zu tun:

from pymongo import MongoClient 

collection = MongoClient(host="mongodb://[email protected]") 
cursor = collection.all_companies.companies 
batch = cursor.find().batch_size(1).limit(1) # I tried w/ other numbers too 

for item in batch: 
    print item 

Und hier ist, was ich immer:

pymongo.errors.ServerSelectionTimeoutError: xxx:xxx: timed out

Antwort

1

Um mehr zu erhalten als ein einzelnes Dokument als Ergebnis einer Abfrage wir Verwenden Sie die Methode find(). find() gibt eine Cursor-Instanz zurück, mit der wir alle übereinstimmenden Dokumente durchlaufen können.

About find()

About Cursor

connection = MongoClient(host="mongodb://[email protected]") 
collection = connection.all_companies.companies 
for item in collection.find(): 
    print item 
+0

ist mir egal, wie viele Dinge, die ich, ich will nur nicht, den Server zu einem Timeout. Es kommt definitiv zu einem Timeout, wenn ich die Batchgröße nicht limitiere –