创建 mongoengine 连接包装器以在多个模块中使用
Create mongoengine connection wrapper to use in multiple modules
我正在创建一个包装器来解决我与 mongoengine 的所有连接,因此我创建了一个从文件读取 mongoDB 配置并连接到它的函数。
您的函数如下所示:
def connect_mongo_odm(config_file_location, db_name):
if db_name:
base_path = ['databases', db_name]
conf_specs = {
'host': {
'path': base_path + ['host']
},
'port': {
'path': base_path + ['port']
}
}
fileConfiguration = dao_utils.readConfiguration(config_file_location, conf_specs)
auth = None
host = fileConfiguration.get('host', None)
host = "mongodb://" + host
connect(alias=db_name,
host=host,
socketKeepAlive=True, socketTimeoutMS=30000)
我将其用作:
# import previous function
# This is another module in my application
connect_mongo_odm('/path/to/config/file', 'dbName')
但是当我尝试保存文档时出现异常,提示我没有定义默认连接。
您需要在每个文档 类 中定义 meta = {"db_alias": "your_connection_alias"}
。如果您不设置它,它将使用 "default" 别名。
示例见此处:
我正在创建一个包装器来解决我与 mongoengine 的所有连接,因此我创建了一个从文件读取 mongoDB 配置并连接到它的函数。
您的函数如下所示:
def connect_mongo_odm(config_file_location, db_name):
if db_name:
base_path = ['databases', db_name]
conf_specs = {
'host': {
'path': base_path + ['host']
},
'port': {
'path': base_path + ['port']
}
}
fileConfiguration = dao_utils.readConfiguration(config_file_location, conf_specs)
auth = None
host = fileConfiguration.get('host', None)
host = "mongodb://" + host
connect(alias=db_name,
host=host,
socketKeepAlive=True, socketTimeoutMS=30000)
我将其用作:
# import previous function
# This is another module in my application
connect_mongo_odm('/path/to/config/file', 'dbName')
但是当我尝试保存文档时出现异常,提示我没有定义默认连接。
您需要在每个文档 类 中定义 meta = {"db_alias": "your_connection_alias"}
。如果您不设置它,它将使用 "default" 别名。
示例见此处: