Как соединить 2 разных хоста в mongodb - PullRequest
0 голосов
/ 19 марта 2019

У меня есть служба в ruby, и я пытаюсь соединиться с двумя разными хостами с двумя разными базами данных

Я пытаюсь что-то вроде этого

mongoid.yml

development:
  clients:
    default:
      database: cpeTracking
      hosts:
       - development-shard.mongodb.net:27017
       - development-shard.mongodb.net:27017
       - development-shard.mongodb.net:27017
      options:
        user: my_user
        password: my_password
        auth_source: admin
        ssl: true
      database: testDb
        hosts:
        - localhost:27017

И моя модель

class Movies
  include Mongoid::Document
  include Mongoid::Attributes::Dynamic
  store_in database: "testDb"

  field :name, type: String
  field :year, type: Integer
  field :director, type: String
end

Когда я запускаю службу, подключаюсь только к первому хосту. Я тоже пробовал это решение Подключение к двум базам данных Mongoid , но не работает

1 Ответ

0 голосов
/ 20 марта 2019

Я нашел ответ. Сначала я должен создать нового клиента на том же уровне по умолчанию, я назвал его «вторичным» с информацией о базе данных и хосте.

development:
  clients:
    default:
      database: my_db
      hosts:
        - development-shard.mongodb.net:27017
        - development-shard.mongodb.net:27017
        - development-shard.mongodb.net:27017
      options:
        user: my_user
        password: my_pass
        auth_source: admin
        ssl: true
    secondary:
      database: testDb
      hosts:
       - localhost:27017

Во-вторых. В модель мне пришлось добавить коллекцию, базу данных и клиент, который будет использовать

class Movies
  include Mongoid::Document
  include Mongoid::Attributes::Dynamic
  store_in collection: "movies", database: "testDb", client: "secondary"

  field :name, type: String
  field :year, type: Integer
  field :director, type: String
end
...