正如我在标题中提到的,我的问题是:
问题:
如何从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.6
和python 3.7
以及mongoengine 0.18.2
和pymongo
问题:
这是推荐的连接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数据库,但是我想知道一种更好的连接方法。