• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

151
Vistas
Cómo convertir MotorLatentCommandCursor a la lista

Uso el controlador Motor de mongoDB en mi proyecto django y tengo un problema para convertir mis datos (que provienen de la base de datos como cursor) a la lista, aquí está mi código:

 documents = db.factor.aggregate([{"$limit": 3}, {"$lookup": {"from": "subfactor", "localField": "_id", "foreignField": "factor_id", "as": "subfactor"}}]) for d in await list(documents): print(d)

y el error:

 File "/usr/lib/python3.8/asyncio/runners.py", line 43, in run return loop.run_until_complete(main) File "/usr/lib/python3.8/asyncio/base_events.py", line 595, in run_until_complete self.run_forever() File "/usr/lib/python3.8/asyncio/base_events.py", line 563, in run_forever self._run_once() File "/usr/lib/python3.8/asyncio/base_events.py", line 1808, in _run_once event_list = self._selector.select(timeout) File "/usr/lib/python3.8/selectors.py", line 468, in select fd_event_list = self._selector.poll(timeout, max_ev)
about 3 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

No conozco Motor, pero una revisión rápida en sus documentos muestra esto:

El cursor es asincrónico iterable, por lo que puede usar async para iterar:

 async for document in db.test_collection.find({'i': {'$lt': 2}}): pprint.pprint(document)

Puede convertir esto en una lista con una comprensión de lista asíncrona:

 items = [x async for x in db.test_collection.find({'i': {'$lt': 2}})]

También tienen funciones auxiliares para convertir un cursor en una lista de espera:

 items = await db.test_collection.find({'i': {'$lt': 2}}).to_list(length=100)
about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda