MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come convertire un pymongo.cursor.Cursor in un dict?

Il find il metodo restituisce un Cursor istanza, che ti consente di scorrere tutti i documenti corrispondenti.

Per ottenere il primo documento che corrisponde ai criteri indicati devi usare find_one . Il risultato di find_one è un dizionario.

Puoi sempre utilizzare l'list costruttore per restituire un elenco di tutti i documenti nella raccolta, ma tieni presente che questo caricherà tutti i dati in memoria e potrebbe non essere quello che desideri.

Dovresti farlo se hai bisogno di riutilizzare il cursore e hai una buona ragione per non usare rewind()

Demo utilizzando 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 utilizzando find_one :

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