MongoDB有数据但Python按_id查询返回None的问题求助
问题分析与解决
首先看你的代码,find_data函数里执行了collection.find_one({"_id": _id}),但没有把查询结果return出来,函数默认返回None,所以你打印的是函数的返回值,自然得到None,而不是查询结果本身。
修复代码
把函数修改为:
def find_data(): from bson.objectid import ObjectId db = client.users_commit_hashes collection = db.test _id = ObjectId("643eef196a3a623bc8abc8ac") # 新增return语句,返回查询结果 return collection.find_one({"_id": _id}) print(find_data())
额外排查点(如果修复后仍有问题)
- 确认
client是否正确连接到目标MongoDB实例,可添加print(db.list_collection_names())验证是否存在test集合 - 直接在MongoDB shell执行查询,验证文档是否存在:
use users_commit_hashes db.test.find({"_id": ObjectId("643eef196a3a623bc8abc8ac")}) - 检查集合名称大小写:MongoDB集合名称区分大小写,确认代码里的
db.test和实际集合名称完全一致
内容的提问来源于stack exchange,提问作者wondergrandma
相关产品推荐
相关产品推荐

