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

如何在PyMongo中将MongoDB数组元素赋值给变量

提取MongoDB数组中的元素值

你的代码已经匹配到了包含health:15的文档,但stats字段返回的是包含单个字典的列表,直接转字符串会得到[{'health': 15}]。要拿到具体数值,需要对列表和字典做进一步索引:

修改后的代码如下:

server = pymongo.MongoClient(url)
pokemon_python = server.pokemon_python
gonestarter = pokemon_python.gonestarter

# 查询匹配的文档,仅返回stats字段中符合条件的元素
bulba_health = gonestarter.find_one({"stats":{"$elemMatch":{"health": 15}}}, {"stats":{"$elemMatch":{"health": 15}}})

# 提取列表第一个元素中的health值
bulba_health_value = bulba_health["stats"][0]["health"]
print(f"Health: {bulba_health_value}")

关键修改说明:

  • bulba_health["stats"]返回的是列表[{'health': 15}],用[0]可获取列表中的第一个字典元素
  • 再通过["health"]从字典中取出对应的数值15

如果stats数组中可能存在多个匹配元素,可通过循环遍历获取所有值:

for stat in bulba_health["stats"]:
    print(f"Health: {stat['health']}")

内容的提问来源于stack exchange,提问作者Kawalpreet Singh_ 52

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:15:52