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

如何使用PyMongo仅提取MongoDB文档中指定字段的取值?

PyMongo 提取文档指定字段取值的方法

你报错的核心原因是:PyMongo的find_one()返回的是Python字典,不是Mongo Shell里的文档对象,所以没法用.name这种属性访问的语法,得用字典的键值访问方式。下面是几种可行的解决方法:

方法1:获取完整文档后提取字段

先拿到整个文档,再通过字典键提取目标字段,推荐用get()方法,避免字段不存在时抛出KeyError:

chargers = db.chargers
# 获取单条文档
doc = chargers.find_one()
# 提取name字段,字段不存在时默认返回None(可自定义默认值)
name = doc.get("name")
print(name)

方法2:用投影(Projection)仅返回目标字段

如果只需要name字段,更高效的方式是通过投影参数让MongoDB只返回你需要的字段,减少数据传输量:

chargers = db.chargers
# 第二个参数为投影规则:1表示返回该字段,_id默认会返回,设为0可去掉
result = chargers.find_one({}, {"name": 1, "_id": 0})
# 从返回的字典中提取name值
name = result.get("name")
print(name)

补充:批量提取多个文档的指定字段

如果要批量获取所有充电站的name字段,用find()配合投影即可:

# 投影只返回name字段
cursor = chargers.find({}, {"name": 1, "_id": 0})
# 遍历游标提取所有有效name值
names = [doc.get("name") for doc in cursor if doc.get("name")]
print(names)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:35:41