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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 11:49:57