Saltar al contenido

¿Cómo convertir un pymongo.cursor.Cursor en un dictado?

Solución:

los find el método devuelve un Cursor instancia, que le permite iterar sobre todos los documentos coincidentes.

Para obtener el primer documento que coincida con los criterios dados, debe usar find_one. El resultado de find_one es un diccionario.

Siempre puedes usar el list constructor para devolver una lista de todos los documentos de la colección, pero tenga en cuenta que esto cargará todos los datos en la memoria y puede que no sea lo que desea.

Debe hacerlo si necesita reutilizar el cursor y tiene una buena razón para no usar rewind()


Demostración 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}

Demostración usando find_one:

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

Fácil

import pymongo
conn = pymongo.MongoClient()
db = conn.test #test is my database
col = db.spam #Here spam is my collection
array = list(col.find())

print array

Ahí tienes

Sugiero crear una lista y agregarle un diccionario.

x   = []
cur = db.dbname.find()
for i in cur:
    x.append(i)
print(x)

Ahora x es una lista de diccionario, puede manipular el mismo de la forma habitual en Python.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *