MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como converter um pymongo.cursor.Cursor em um dict?


O find retorna um Cursor instância, que permite iterar em todos os documentos correspondentes.

Para obter o primeiro documento que corresponde aos critérios fornecidos, você precisa usar find_one . O resultado de find_one é um dicionário.

Você sempre pode usar a list construtor para retornar uma lista de todos os documentos da coleção, mas lembre-se de que isso carregará todos os dados na memória e pode não ser o que você deseja.

Você deve fazer isso se precisar reutilizar o cursor e tiver um bom motivo para não usar rewind()

Demonstração usando 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}

Demonstração usando find_one :
>>> col.find_one()
{'a': 1, '_id': ObjectId('54ff30faadd8f30feb90268f'), 'b': 2}