Запустите 2 подключения MongoDB в Elixir - PullRequest
0 голосов

Я делаю приложение, которое требует одновременного подключения к 2 базам данных mongo.

Я использую модуль mongodb (v0.4).

Пока мой руководитель смотритвот так:

children=[
    worker(Mongo, [[name: :mongo, database: "transit", seeds: ["localhost:27017"], pool: DBConnection.Pool]])
]
opts= [strategy: :one_for_one, name: HugoEtl.Supervisor]
Supervisor.start_link(children, opts) 

Я хотел бы одновременно открыть другое соединение для передачи данных из одного соединения в другое.

Как мне этого добиться.

1 Ответ

0 голосов

Что может помешать одному открытию двух подключений наивно, так это автоматические идентификаторы рабочих, соответствующие эквивалентному имени модуля.

children=[
    worker(Mongo, [[name: :mongo, database: "transit", seeds: ["localhost:27017"], pool: DBConnection.Pool]]), 
    worker(Mongo, [[name: :mongo_final, database: "final", seeds: ["localhost:27017"], pool: DBConnection.Pool]], id: MongoFinal)
]
opts= [strategy: :one_for_one, name: HugoEtl.Supervisor]
Supervisor.start_link(children, opts) 

Это запустит 2 подключения к базе данных, каждое из которых можно запросить с помощью:

# first connection 
Mongo.find(:mongo,"collection",%{})
# second connection 
Mongo.find(:mongo_final,"collection",%{})
...