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

Pymongo使用find_one双属性匹配查询仅首字段生效问题求助

你代码的问题出在find_one方法的参数使用错误。PyMongo 中find_one的第一个参数是查询过滤条件,第二个参数为投影参数,仅用于指定返回结果中需要保留或排除的字段,不参与条件匹配。你把职位校验逻辑写在了第二个投影参数的位置,所以只有姓名匹配规则会生效。

修正后的代码如下:

name = input("Please enter your name ")
job = input("Please enter your job role ")

# 双字段匹配条件统一放在第一个查询参数中
docu = staff_collection.collection.find_one({
    "Full Name": name,
    "Job_Role": job
})

if docu is not None:
    print(docu)
else:
    print("User not found")

你原代码中定义的myquery、myquery2、myquery3都属于冗余变量,无实际作用可以直接删除简化逻辑。如果要保留原变量命名,把查询条件替换为{"Full Name": myquery, "Job_Role": myquery2}即可,效果完全一致。

内容的提问来源于stack exchange,提问作者Request

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 13:27:00