Comment puis-je trouver le cursor_id pour kill_cursors ()?

La documentation de l'API PyMongo mentionne une fonction permettant de tuer un curseur mongodb:

kill_cursors(cursor_ids) Send a kill cursors message with the given ids.
Raises TypeError if cursor_ids is not an instance of list.
Parameters :     cursor_ids: list of cursor ids to kill

Cependant, il ne spécifie pas (autant que je peux voir) comment trouver l'identifiant de votre curseur. Comment puis-je l'obtenir?

from pymongo import Connection
c = Connection()
crawl = c.db.coll.find()
print crawl.id? <-- no idea how to get this
0
ajouté édité
Vues: 1
une fois que le curseur est exécuté, il est dans cursor._Cursor__id (qui sera mis à 0 avant l'exécution du curseur)
ajouté l'auteur Asya Kamsky, source

2 Réponses

Jesse, je peux toujours vouloir tuer un curseur explicitement si je découvre que c'est un curseur non autorisé, ou pendant les tests. Avoir cette option dans la console d'administration de script Java sera un plus. En plus de cela, avons-nous un moyen de lister tous les curseurs ouverts sur un serveur mongo?

1
ajouté
Ce n'est pas une réponse ...
ajouté l'auteur Kartoch, source
Alors s'il vous plaît ouvrir une nouvelle question. Merci.
ajouté l'auteur Kartoch, source
Oui. C'est une question de suivi. Avons-nous un moyen d'imprimer tous les ID de curseur ouverts dans Mongo?
ajouté l'auteur sam, source

Vous n'avez jamais besoin de tuer explicitement un curseur. Le serveur nettoie automatiquement les curseurs une fois que vous avez récupéré tous les résultats d'un curseur. (Par exemple, avec un pour doc dans la boucle collection.find() .) Si vous ne récupérez pas tous les résultats, PyMongo tue automatiquement le curseur lorsque son instance Cursor est déréférencée. Donc par exemple: pour doc dans collection.find ():     assertion False # raise exception Lorsque le curseur est hors de portée, PyMongo appelle automatiquement kill_cursors pour nettoyer le côté serveur du curseur.

0
ajouté