我正在寻找一个基于类的包装器来在python中创建mongo连接并执行几个操作。我开始编写一些代码,但考虑是否有任何现有的包装器可用于类似的需求。
class MongoDbConn:
def __init__(self):
self.settings_mongo = {
'username': DB_USERID_MONGO,
'password': DB_PASSWORD_MONGO,
'host': DB_HOST_MONGO + ":" + DB_PORT_MONGO,
'database': DB_AUTH_NM_MONGO
}
self.mongo_client =\
MongoClient("mongodb://{username}:{password}@"
"{host}/?authSource={database}".format(
**self.settings_mongo))
def execute_operation(self, db_name, collection_name, query,
operation):
assert operation in ["find", "find_one", "distinct"]
db = self.mongo_client[db_name]
collection = db[collection_name]
rs = getattr(collection, operation)(query)
return rs
def find_one(self, db_name, collection_name, query):
return self.execute_operation(self, db_name, collection_name, query,
operation="find_one")
def find(self, db_name, collection_name, query):
TODO
def delete(self, db_name, collection_name, query):
TODO
def ensure_index_if_not_exist(self, db_name, collection_name, query):
TODO
def distinct(self, db_name, collection_name, query):
TODO
def insert(self, db_name, collection_name, query):
TODO
def update(self, db_name, collection_name, query):
TODO
因此,在上面的例子中,我正在寻找一个与上面相同的通用库
答案 0 :(得分:1)
我不明白您的代码提供了哪些好处。它更复杂,可能比直接使用PyMongo慢一点,但除此之外我看不到多少优势。只需使用PyMongo。
如果您正在寻找与MongoDB更高级别的Python接口,请考虑PyMODM,它在Python对象和MongoDB文档之间进行转换,有点像Django ORM对SQL行的转换。