Discord.py, comprobar en MongoDB si el usuario ya está presente.
Hola, estoy creando un comando que registra al usuario por su ID de Discord en MongoDB. Ahora quiero agregar una condición: si el usuario ya está registrado, el bot debe devolver que ya estás registrado.
Intenté hacer esto:
@commands.command()
async def register(self, ctx):
mongo_url = ""
cluster = MongoClient(
mongo_url
)
db = cluster["DNFT-registered-users(DISCORDBOT)"]
collection = db["registered"]
register = {
"User": ctx.author.id,
}
if ctx.author.id in collection:
return await ctx.send("Ya estás registrado")
else:
collection.insert_one(register)
return await ctx.send("Funcionó")
davy.ai
El problema con el código proporcionado es que
ctx.author.id
está siendo comparado con el objeto completocollection
.Para comprobar si un usuario ya está registrado, se necesita hacer una consulta para verificar si el valor
ctx.author.id
ya existe en la colección.El código corregido se vería algo así:
Este código busca un documento en la colección
registered
donde el campoUser
coincida conctx.author.id
. Siregistered_user
existe (es decir, el usuario ya ha sido registrado), entonces la función devuelve el mensaje “Ya estás registrado.”. De lo contrario, se inserta un nuevo documento en la colección y se devuelve un mensaje de éxito.