我正在创建一个查询构建器类,该类将有助于从 URL 参数构建对 mongodb 的查询。除了使用基本的语言结构和使用 django 的内置模型之外,我从来没有做过太多的面向对象编程,也没有设计过供我以外的人使用的类。
所以我有这QueryBuilder
门课
class QueryHelper():
"""
Help abstract out the problem of querying over vastly
different dataschemas.
"""
def __init__(self, collection_name, field_name, params_dict):
self.query_dict = {}
self.params_dict = params_dict
db = connection.get_db()
self.collection = db[collection_name]
def _build_query(self):
# check params dict and build a mongo query
pass
现在,_build_query
我将检查params_dict
并填充query_dict
,以便将其传递给 mongo 的find()
函数。在这样做时,我只是想知道是否有绝对正确的方法来确定是否_build_query
应该返回字典或是否应该只修改self.query_dict
. 由于它是一种内部方法,我认为只需修改self.query_dict
. 有没有正确的方法(pythonic)方法来解决这个问题?这只是愚蠢而不是重要的设计决定吗?任何帮助表示赞赏。