如何使用PyMongo对MongoDB所有数据库执行相同查询?
对MongoDB所有数据库执行统一查询的实现方法
你尝试的db["*"]["test"].find()或者直接传入多数据库名的写法在PyMongo中并不支持,要实现对所有数据库的指定集合执行相同查询,最直接可行的方式是遍历所有数据库名称,逐个执行操作:
import pymongo # 建立MongoDB连接 client = pymongo.MongoClient("localhost") # 获取实例中所有数据库的名称 db_names = client.list_database_names() # 遍历每个数据库执行查询 for db_name in db_names: # 可选:跳过MongoDB自带的系统数据库(admin、local、config) if db_name in ["admin", "local", "config"]: continue # 定位到当前数据库的test集合并执行查询 collection = client[db_name]["test"] # 可根据需求处理查询结果,例如打印文档 for document in collection.find(): print(document)
额外说明
- 如果已经明确要操作的数据库列表(比如
db1、db2、db3),可以直接遍历目标列表,无需调用list_database_names():
target_databases = ["db1", "db2", "db3"] for db_name in target_databases: collection = client[db_name]["test"] # 执行查询及后续处理
内容的提问来源于stack exchange,提问作者Underdeveloper
相关产品推荐
相关产品推荐

