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

使用PyMongo无法打印数据库对象,报'Database object is not callable'错误

问题排查与解决

错误原因

你的报错源于pymongo版本兼容性问题:

  • 旧版pymongo(3.0之前)中,client.database_names()是获取数据库列表的有效方法;
  • 但在pymongo 3.0及以上版本中,该方法已被废弃并移除。此时访问client.database_names会被MongoClient解析为获取名为database_names的数据库对象,而数据库对象不可被调用,加括号执行时就会抛出TypeError: 'Database' object is not callable错误。

解决方案

直接使用新版本pymongo提供的替代方法,两种常用方式如下:

方法1:直接获取数据库名称列表

将代码中的client.database_names()替换为client.list_database_names():

import pymongo
client = pymongo.MongoClient("127.0.0.1", 27017)
databases = client.list_database_names()
print("The databases in the MongoDB server are:")
print(databases)
client.close()

方法2:获取完整数据库信息再提取名称

如果需要数据库的更多元数据(如存储大小),可以用list_databases()返回包含详细信息的字典列表,再提取名称:

import pymongo
client = pymongo.MongoClient("127.0.0.1", 27017)
db_info_list = client.list_databases()
databases = [db["name"] for db in db_info_list]
print("The databases in the MongoDB server are:")
print(databases)
client.close()

验证当前pymongo版本(可选)

通过以下代码可以查看当前使用的pymongo版本:

import pymongo
print(pymongo.__version__)

内容的提问来源于stack exchange,提问作者Balaji Shankar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 23:39:22