1

我正在使用 django non-rel 和 mongodb 后端。文档很清楚如何连接到单个主机,但是我想连接到副本集中的所有主机。

有可能这样做吗?

对于这样的连接字符串,settings.py 中的 DATABASES 元素如何:

mongodb://db1.example.net,db2.example.net:2500/?replicaSet=test
4

2 回答 2

1

在 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',
    },
}

更新:

这已被验证可以在主分支上工作:

git+ https://github.com/django-nonrel/mongodb-engine

于 2014-05-07T10:31:01.293 回答
0

我已经研究过这个问题,不幸的是,目前这是不可能的,但我已经提出了一个功能请求,试图在未来的版本中实现这个功能。

目前,您必须分别连接到每个数据库,但您可以查看异步连接或后台任务以加快应用程序性能。

于 2014-03-24T11:59:37.553 回答