MongoDB用户集合查询:如何返回userKey与userDiscordId指定字段
解决Python操作MongoDB查询特定用户并返回指定字段的问题
嘿,我发现你的代码里把MongoDB find() 方法的两个关键参数搞混啦!这就是为啥你没法得到想要的userKey和userDiscordId字段的原因。
问题出在哪?
find()方法的第一个参数是查询筛选条件(用来定位你要找的用户),第二个参数是投影规则(用来指定返回哪些字段)。你现在把查询条件写进了投影参数里,导致既没正确筛选用户,也没指定要返回的字段。
修正后的代码
下面是正确的写法,我帮你拆分了参数,清晰标注了每个部分的作用:
# 正确查询特定用户并返回指定字段 for user in mycol.find( # 第一个参数:查询条件,匹配userDiscordId为"HugoS#6454"的用户 {"userDiscordId": "HugoS#6454"}, # 第二个参数:投影规则,排除_id,只返回userKey和userDiscordId {"_id": 0, "userKey": 1, "userDiscordId": 1} ): print(user)
执行这段代码后,你会得到类似这样的结果:
{'userDiscordId': 'HugoS#6454', 'userKey': 'awdawdawd'}
额外优化:如果只需要单个用户
如果你确定这个userDiscordId是唯一的,用find_one()会更高效,不需要遍历结果:
user = mycol.find_one( {"userDiscordId": "HugoS#6454"}, {"_id": 0, "userKey": 1, "userDiscordId": 1} ) if user: print(user) else: print("未找到该用户")
内容的提问来源于stack exchange,提问作者HugoS
相关产品推荐
相关产品推荐

