我正在使用 django non-rel 和 mongodb 后端。文档很清楚如何连接到单个主机,但是我想连接到副本集中的所有主机。
有可能这样做吗?
对于这样的连接字符串,settings.py 中的 DATABASES 元素如何:
mongodb://db1.example.net,db2.example.net:2500/?replicaSet=test
我正在使用 django non-rel 和 mongodb 后端。文档很清楚如何连接到单个主机,但是我想连接到副本集中的所有主机。
有可能这样做吗?
对于这样的连接字符串,settings.py 中的 DATABASES 元素如何:
mongodb://db1.example.net,db2.example.net:2500/?replicaSet=test
在 mongodb-engine 项目中有一个未解决的问题。
https://github.com/django-nonrel/mongodb-engine/pull/170#issuecomment-42406797
从评论中,应该这样做:
DATABASES = {
'default': {
'ENGINE': 'django_mongodb_engine', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'dbname', # Or path to database file if using sqlite3.
'USER': '', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': 'mongodb://mongodb1.domain.com:27107, mongodb2.domain.com:27017/?replicaSet=replicaname',
},
}
更新:
这已被验证可以在主分支上工作:
我已经研究过这个问题,不幸的是,目前这是不可能的,但我已经提出了一个功能请求,试图在未来的版本中实现这个功能。
目前,您必须分别连接到每个数据库,但您可以查看异步连接或后台任务以加快应用程序性能。