Django非rel连接到副本集中的多个主机

时间:2014-02-26 08:04:46

标签: django-nonrel django-mongodb-engine

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

是否可以这样做?

settings.py中的DATABASES元素如何用于连接字符串,如下所示:

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

在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