PyMongo的问题:检查集合

时间:2018-01-27 18:55:53

标签: python pymongo discord discord.py

我目前正在使用Python学习MongoDB,而我正在使用discord bot来尝试我的项目。我想做一些事情,但我不知道该怎么做。

第一个问题如下:

@bot.command(pass_context=True)
async def test(ctx, arg:str=None):
    db = client.db_test
    collection = db["test"]
    cursor = collection.find({"permission" : arg})
    if perm is not None:
        if perm == "x":
            for y in cursor:
                await bot.say(y)

机器人发送此消息:

{'_id': '<id>', 'name': '<name>', 'permission': 'x'}

但我希望它发送如下:

<name> has permission x

第二个问题如下:

我想检查用户是否拥有“x”权限并打印如下内容:

<name> has permission admin

我该如何解决并做到这一点?

1 个答案:

答案 0 :(得分:0)

在此细分中:

            for y in cursor:
                await bot.say(y)

y实际上是一个Python dict,您可以在打印时看到它。在这种情况下,您所要做的就是从字典中获取所需的值并自己创建字符串 那将是(使用 str format()方法:

answer = "{} has permission {}".format(y["name"], y["permission"])

所以,你需要做的就是返回而不是像tis那样:

            for y in cursor:
                answer = "{} has permission {}".format(y["name"], y["permission"])
                await bot.say(answer)