如何将 MongoDB 集合名称作为参数传递给数据库连接函数-Python

How to pass MongoDB collection name as a parameter to a DB connection function-Python

我需要编写一个数据库连接函数,

def func(col_name):
    conn = pymongo.MongoClient("localhost" , 27017)
    db   = conn.dbname.col_name
    return db

集合名称应作为参数传递给函数。以上功能无效。如果我在代码中硬编码集合名称,它就可以工作。 请帮忙。

您可以使用 getattr 通过属性名称获取对象的属性:

getattr(conn.dbname, col_name)
def func(col_name):
    conn = pymongo.MongoClient("localhost" , 27017)
    return conn.dbname[col_name]

如果您想传入数据库名称,您可以从客户端执行相同的操作:

def func(db_name, col_name):
    conn = pymongo.MongoClient("localhost" , 27017)
    return conn[db_name][col_name]