You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 19:47:29