De find
methode retourneert een Cursor
instantie, waarmee u alle overeenkomende documenten kunt herhalen.
Om het eerste document te krijgen dat aan de opgegeven criteria voldoet, moet je find_one
. gebruiken . Het resultaat van find_one
is een woordenboek.
U kunt altijd de list
. gebruiken constructor om een lijst van alle documenten in de collectie te retourneren, maar houd er rekening mee dat hierdoor alle gegevens in het geheugen worden geladen en dat dit misschien niet is wat u wilt.
U moet dat doen als u de cursor opnieuw moet gebruiken en een goede reden heeft om rewind()
niet te gebruiken
Demo met 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}
Demo met find_one
:
>>> col.find_one()
{'a': 1, '_id': ObjectId('54ff30faadd8f30feb90268f'), 'b': 2}