Come chiudere il cursore in MongoKit
Domanda
Sto usando MongoKit per eseguire iterazioni su un'enorme quantità di dati.
Durante questo processo il mio cursore non è più valido e ricevo
OperationFailure: cursor id '369397057360964334' not valid at server
Ho letto nelle mailing list che posso passare il parametro timeout=False
al metodo .find()
, ma PyMongo FAQ dice che devo occuparmi della chiusura del cursore da solo.
Ma non ho trovato metodi in MongoKit per questo.
Devo chiudere il cursore manualmente e, se sì, come posso farlo?
Soluzione
Dovrai chiudere il cursore poiché il server MongoDB non farà scadere il cursore per te, dato che hai specificamente chiesto di non farlo.
chiama semplicemente del
sul tuo cursore.L'implementazione predefinita di pymongo per __del__
notificherà al server di uccidere il cursore.
Supponendo qualcosa di simile:
cursor = db.test.find(timeout=False)
Fallo semplicemente quando hai finito:
del cursor