就像前言一样,我知道可以轻松地完成大部分工作,下面的问题是为了学习如何构建类并在该类中实例化数据库连接。
我正在建立一个类,现在只需要两个变量即可;MongoDB数据库的名称,以及该数据库的集合名称。我试图在此类的init函数中实例化此数据库和集合的连接。我遇到的问题是init函数正在连接到变量实际名称的数据库,而不是变量的实际赋值。更具体地说,如果我实例化
>>>salesChar = MongoDumps("sales","char")
然后我打电话
>>>salesChar.db.name
而是连接到“ dBase”(变量的名称)数据库,而不是“ salesChar”(dBase变量的分配)数据库。请查看下面的代码,
import pymongo
from pymongo import MongoClient
class MongoDumps():
"""Data Dumping into MongoDB"""
def __init__(self, dBase, dumpCollection):
self.dBase = dBase
self.dumpCollection = dumpCollection
client = MongoClient()
self.db = client.dBase
self.collection = self.db.dumpCollection
我尝试了多种策略的组合,但似乎没有一种在每个策略中都有相似的结果。在课堂上使用作业有某些限制吗?谢谢你的帮助!
用于getattr
通过字符串获取属性。正如文档所述,getattr(x, 'foobar')
等同于x.foobar
。您的代码应如下所示:
class MongoDumps():
def __init__(self, dBase, dumpCollection):
self.dBase = dBase
self.dumpCollection = dumpCollection
client = MongoClient()
self.db = getattr(client, dBase)
self.collection = getattr(self.db, dumpCollection)
然后,您可以使用此类通过名称获取集合:
salesChar = MongoDumps("sales", "char")
first = salesChar.collection.find_one()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句