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

如何使用Python仅打印MongoDB集合中文档的字段值?

要实现只输出文档的字段值、不显示字段名的需求,你可以通过提取每个文档的值集合来处理,直接打印这些值就行。这里分两种场景给你方案:

方案1:输出所有字段的值(包括_id)

注意ObjectId类型不能直接参与字符串拼接,所以要先把它转换成字符串。修改后的代码如下:

from bson.objectid import ObjectId  # 记得导入ObjectId类

x = list(coll.find())
for row in x:
    # 遍历每个文档的值,把ObjectId转为字符串,其他值统一转成字符串方便拼接
    field_values = []
    for val in row.values():
        if isinstance(val, ObjectId):
            field_values.append(str(val))
        else:
            field_values.append(str(val))
    # 用逗号分隔值,你也可以换成空格、制表符等
    print(', '.join(field_values))

运行后输出示例:

USA, 35.0, 5c481307c45c2d388de3b4ba, 11.0, Sachin
India, 33.0, 5c481307c45c2d388de3b4bb, 12.0, Rahul
China, 36.0, 5c481307c45c2d388de3b4bc, 13.0, Yadav
UK, 32.0, 5c481307c45c2d388de3b4bd, 14.0, Jadhav
Japan, 30.0, 5c481307c45c2d388de3b4be, 15.0, Rohit
Germany, 45, 5c4aa2f0f2f8ba463102fd76, 80, Rahul

方案2:排除_id字段,只输出业务字段的值

如果不需要_id,可以在查询时直接过滤掉它,代码会更简洁:

# 查询时指定投影,排除_id字段
x = list(coll.find({}, {'_id': 0}))
for row in x:
    # 直接提取值并拼接
    print(', '.join(map(str, row.values())))

这个方案的输出示例:

USA, 35.0, 11.0, Sachin
India, 33.0, 12.0, Rahul
China, 36.0, 13.0, Yadav
UK, 32.0, 14.0, Jadhav
Japan, 30.0, 15.0, Rohit
Germany, 45, 80, Rahul

你可以根据实际需求选一种,要是需要调整值之间的分隔符,修改join里的参数就好~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:15:05