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?

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top