Ich versuche, einige ids zu holen, die mit dem folgenden Code in einer Mongo Datenbank vorhanden ist:pymongo.errors.CursorNotFound: Cursor id '...' nicht gültig bei Server
client = MongoClient('xx.xx.xx.xx', xxx)
db = client.test_database
db = client['...']
collection = db.test_collection
collection = db["..."]
for cursor in collection.find({ "$and" : [{ "followers" : { "$gt" : 2000 } }, { "followers" : { "$lt" : 3000 } }, { "list_followers" : { "$exists" : False } }] }):
print cursor['screenname']
print cursor['_id']['uid']
id = cursor['_id']['uid']
jedoch nach kurzem während ich bin diesen Fehler erhalten:
pymongo.errors.CursorNotFound: cursor id '...' not valid at server.
ich diesen article gefunden, die zu diesem Problem bezieht. Trotzdem ist mir nicht klar, welche Lösung zu wählen ist. Ist es möglich, find().batch_size(30)
zu verwenden? Was genau macht der obige Befehl? Kann ich alle Datenbank-IDs mit batch_size
übernehmen?
Ich definierte die batch_size zu 50. Allerdings habe ich den gleichen Fehler pymongo.errors.CursorNotFound: Cursor-ID '' nicht gültig bei serv er. Was ist der richtige Wert, den ich Batch_size einstellen muss? –
@snakeplissken - aktualisiert meine Antwort –
Wie kann ich sicher sein mit der Verwendung von Timeout. Wie kann ich sicher sein, dass der Cursor geschlossen ist? –