Python提取MongoDB文档转JSON时如何去掉_id字段并解决输出为空问题
Python导出MongoDB数据为空问题修复方案
核心问题原因
你代码中的查询语句存在引用错误:提前定义了集合对象mycol = mydb["mappedfields"],但实际查询时写的是mydb.mycol.find(),这里的mydb.mycol是直接调用数据库下名为mycol的集合,而非你之前定义的指向mappedfields的变量,相当于一直在查一个不存在的空集合,自然返回空数组。
排查步骤
- 验证库名、集合名是否正确:可在查询前加入计数代码验证数据存在性:
# 输出集合内文档总数,大于0说明数据存在 print(mycol.count_documents({}))
- 确认输出目录
mapping_files已存在,若不存在可提前创建,避免写入报错。 - 检查MongoDB服务是否正常启动,连接地址、端口是否匹配。
修复后完整代码
import pymongo from json import dumps myclient = pymongo.MongoClient('mongodb://localhost:27017/') mydb = myclient["guid"] mycol = mydb["mappedfields"] # 直接使用已定义的集合对象查询,替换之前的mydb.mycol.find cursor = mycol.find({}, {'_id': False}) list_cur = list(cursor) json_data = dumps(list_cur, indent=1) with open('mapping_files/mapping_from_mongodb.json', 'w') as file: file.write(json_data)
内容的提问来源于stack exchange,提问作者Naveen
相关产品推荐
相关产品推荐

