从Django restframework连接到其他mongo群集

时间:2019-12-05 05:33:35

标签: python python-3.x mongodb database-migration

正如我在标题中提到的,我的问题是:

问题:

如何从Django rest框架连接到其他mongo集群?

这是我的settings.py

import mongoengine

TESTING = sys.argv[1:2] == ['test'] or get_env_var("TESTING", "FALSE").lower() == "true"

MONGO_DEFAULT_DB = 'my_default_db'

# def get_env_var(key, default):
#    return value of specified key from project env

MONGO_DEFAULT_CREDENTIALS = {
    'username': get_env_var('MONGO_DEFAULT_USER', 'mongo_user'),
    'password': get_env_var('MONGO_DEFAULT_PASSWORD', 'mongo_passwd'),
}

MONGO_DATABASES = {
    'my_default_db': {
        'db': 'test' if TESTING else MONGO_DEFAULT_DB,
        'alias': 'default'
    },
    "another_db": {
        'db': 'test' if TESTING else 'another_db',
        'alias': 'another_db',
    }
}

MONGO_DEFAULT_URI = {
    'host': get_env_list('MONGO_SHARDED_HOSTS', [
        "127.0.0.1",
        "127.0.0.1",
        "127.0.0.1",
        "127.0.0.1",
    ]),
    'port': int(get_env_var('MONGO_PORT', 27017)),
}

for key in MONGO_DATABASES.keys():
    MONGO_DATABASES[key].update(MONGO_DEFAULT_URI)

    if not TESTING:
        MONGO_DATABASES[key].update(MONGO_DEFAULT_CREDENTIALS)

# Mongo connection
for conn in MONGO_DATABASES.values():
    mongoengine.connect(**conn)
  

django 2.0.6python 3.7以及mongoengine 0.18.2pymongo

问题:

这是推荐的连接mongo的方法吗?

我想做什么:

实际上,我想要的是:将数据从当前的mongo集群迁移到另一个mongo集群,而我想传输特殊数据,而不是全部数据。也许新的mongo数据库不在集群中。所以

我的mongo_model.py

from mongoengine.document import Document

class MyMongoModel(Document):
    # connected to current mongo cluster and I want to transfer data from this model to another mongo DB  
    pass

我的迁移脚本如下:


data = MyMongoModel.objects.filter()

# connect to new mongo database and use bulk write to write on MyMongoModel collection

问题:

当我想在新的mongo数据库上写入数据时,如何更改数据库?

  

我知道我可以像对待旧数据库一样连接到新的mongo数据库,但是我想知道一种更好的连接方法。

0 个答案:

没有答案
相关问题