Всем привет! Я хочу изменить pymongo на motor (асинхронная версия pymongo). У меня есть такой код.
database.py
import motor.motor_asyncio
import os
from dotenv import load_dotenv
import asyncio
load_dotenv()
cluster = motor.motor_asyncio.AsyncIOMotorClient(os.environ['MONGO_URL'])
db = cluster[os.environ['DB_NAME']]
async def get_db(server_id, plugin):
data = await db[plugin].find({'server_id': str(server_id)})
#print(data)
if not len(list(data)) > 1:
return db[plugin].find_one({'server_id': str(server_id)})
else:
return db[plugin].find({'server_id': str(server_id)})
другие файлы, в которых примерно такой же код
async def update_rewards(self, server):
plugin = database.get_db(server.id, 'levels')
server_rewards = database.get_db(server.id, 'role_rewards')
rewards = []
if database.get_db(server.id, 'role_rewards'):
if not type(database.get_db(server.id, 'role_rewards')) is dict:
rewards_ = database.get_db(server.id, 'role_rewards')
for reward in rewards_:
print(reward)
await rewards.append(reward)
else:
rewards.append(database.get_db(server.id, 'role_rewards'))
Ошибка
for reward in rewards_:
^^^^^^^^
TypeError: 'coroutine' object is not iterable
Я не совсем понимаю как работает asyncio. можете помочь?