如何在PyMongo中仅提取并打印文档的name字段值
解决方法
你的代码当前返回包含_id和name的字典,是因为MongoDB默认会返回_id字段,除非你明确指定排除它。要仅打印Charmander,可以用以下两种方式:
方式一:修改投影规则,只返回name字段
在find_one的第二个参数(投影参数)中,明确指定包含name并排除_id,之后提取字段值:
pokemon_python = client.pokemon_python gonestarter = pokemon_python.gonestarter # 投影参数:保留name,排除_id char_doc = gonestarter.find_one({"stats":{"$elemMatch":{"health": 10}}}, {"name": 1, "_id": 0}) char_name = char_doc["name"] print(char_name)
方式二:直接从返回的字典中提取name值
即使结果包含_id,也可以直接通过字典键名获取name对应的值:
pokemon_python = client.pokemon_python gonestarter = pokemon_python.gonestarter char_doc = gonestarter.find_one({"stats":{"$elemMatch":{"health": 10}}}, {"name"}) char_name = char_doc["name"] print(char_name)
两种方式最终都会输出:Charmander
内容的提问来源于stack exchange,提问作者Kawalpreet Singh_ 52
相关产品推荐
相关产品推荐

