find
metoden returnerer en Cursor
instans, som giver dig mulighed for at iterere over alle matchende dokumenter.
For at få det første dokument, der matcher de givne kriterier, skal du bruge find_one
. Resultatet af find_one
er en ordbog.
Du kan altid bruge list
konstruktør for at returnere en liste over alle dokumenterne i samlingen, men husk, at dette vil indlæse alle data i hukommelsen og måske ikke er, hvad du ønsker.
Det bør du gøre, hvis du har brug for at genbruge markøren og har en god grund til ikke at bruge rewind()
Demo ved hjælp af 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 ved hjælp af find_one
:
>>> col.find_one()
{'a': 1, '_id': ObjectId('54ff30faadd8f30feb90268f'), 'b': 2}