Maison  >  Questions et réponses  >  le corps du texte

python - utilisation des curseurs dans pymongo

Problème : 
Je dois utiliser le même curseur plusieurs fois. Ensuite, j'ai découvert que le curseur dans une boucle for était inutile.
Puis j'ai utilisé

a = db.base.find()
c = b = a 

Mais après une boucle for, b et c ne peuvent pas être utilisés.
Ensuite, j'ai pensé à utiliser la copie profonde :

import copy
a = db.base.find()
b = copy.deepcopy(a)
c = copy.deepcopy(a)

De cette façon, vous pouvez l'utiliser.
Mais cela augmentera-t-il l'utilisation de la mémoire~ !

Comment l'utiliser de la plus belle des manières ? Merci

PHPzPHPz2687 Il y a quelques jours1114

répondre à tous(1)je répondrai

  • 巴扎黑

    巴扎黑2017-05-17 10:06:06

    Vous pouvez utiliser le tee-shirt itertools

    In [20]: from itertools import tee
    
    In [21]: x1,x2 = tee(db.x.find())
    
    In [22]: list(x1)
    Out[22]: 
    [{u'_id': ObjectId('590026b521d7dd4a1beb3c1a'), u'name': u'bar'},
     {u'_id': ObjectId('590026b921d7dd4a1beb3c1b'), u'name': u'foo'}]
    
    In [23]: list(x2)
    Out[23]: 
    [{u'_id': ObjectId('590026b521d7dd4a1beb3c1a'), u'name': u'bar'},
     {u'_id': ObjectId('590026b921d7dd4a1beb3c1b'), u'name': u'foo'}]
    

    répondre
    0
  • Annulerrépondre