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}