我正在尝试编写一个函数来连接到 mongodb 并返回一个集合对象。我有以下内容:
def getCollection(dbname,collection):
client = MongoClient()
data_base = client.dbname
collObject = data_base.collection
return collObject
当我运行时:
collection = getCollection(client, "hkpr_restore", "agents")
print collection
我得到:
Collection(Database(MongoClient('localhost', 27017), u'dbname'), u'collection')
我做错了什么?
最佳答案
当使用 client.dbname
时,属性 dbname 被调用,这意味着您正在检索名为 dbname 的数据库。
同样适用于 data_base.collection
。
解决方法:
def getCollection(dbname, collection):
client = MongoClient()
data_base = getattr(client, dbname)
collObject = getattr(data_base, collection)
return collObject
替代方案:您可以使用字典式访问:
def getCollection(dbname, collection):
client = MongoClient()
data_base = client[dbname]
collObject = data_base[collection]
return collObject
关于python - 如何使用 pymongo 编写连接到 mongodb 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29915706/