MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment convertir un pymongo.cursor.Cursor en dict?

Le find la méthode renvoie un Cursor instance, qui vous permet d'itérer sur tous les documents correspondants.

Pour obtenir le premier document qui correspond aux critères donnés, vous devez utiliser find_one . Le résultat de find_one est un dictionnaire.

Vous pouvez toujours utiliser la list constructeur pour renvoyer une liste de tous les documents de la collection, mais gardez à l'esprit que cela chargera toutes les données en mémoire et peut ne pas être ce que vous voulez.

Vous devriez le faire si vous avez besoin de réutiliser le curseur et avez une bonne raison de ne pas utiliser rewind()

Démo utilisant find :

>>> import pymongo
>>> conn = pymongo.MongoClient()
>>> db = conn.test #test is my database
>>> col = db.spam #Here spam is my collection
>>> cur = col.find()  
>>> cur
<pymongo.cursor.Cursor object at 0xb6d447ec>
>>> for doc in cur:
...     print(doc)  # or do something with the document
... 
{'a': 1, '_id': ObjectId('54ff30faadd8f30feb90268f'), 'b': 2}
{'a': 1, 'c': 3, '_id': ObjectId('54ff32a2add8f30feb902690'), 'b': 2}

Démo utilisant find_one :

>>> col.find_one()
{'a': 1, '_id': ObjectId('54ff30faadd8f30feb90268f'), 'b': 2}