Или используйте $ каждый модификатор с помощью $ addToSet:
https://docs.mongodb.com/manual/reference/operator/update/addToSet/#each-modifier
blockquote>// Existing tags array { _id: 2, item: "cable", tags: [ "electronics", "supplies" ] } // Add "camera" and "accessories" to it db.inventory.update( { _id: 2 }, { $addToSet: { tags: { $each: [ "camera", "accessories" ] } } } )
Наконец, я нашел решение проблемы. Проблема заключается в том, что имя узла является именем узла главного имени FQ, но имя подчиненного узла не имеет домена. Также добавлены оба имени узла в файл / etc / hosts
Перед запуском настройте правильные записи в файлах / etc / hosts обоих узлов. то есть узлы должны разрешать друг друга, используя их имена хостов. задайте имя узла ejaberd в файле ejabberd.cfg, оба узла должны иметь разные имена узлов.
1.сконфигурируйте ejabberd в одном главном узле с правильным именем узла (либо полное доменное имя, либо просто имя вашего удобства)
2.конфигурируйте подчиненный узел с той же конфигурацией, что и у главного, т.е. бот-узлы должны иметь одинаковую конфигурацию в файле ejabberd.yml)
3.copy erlang.cookie от главного узла к подчиненному, и пользователь ejabberd должен иметь права на чтение файла cookie.
4. Запустите главный узел в режиме реального времени (ejabberdctl live)
5. Запустите подчиненный узел в режиме реального времени
6. Проверьте значение cookie в консоли erlang обоих узлов, используя команда 'erlang: get_cookie ().' оба узла должны иметь одинаковое значение.
7.Если бот-узлы имеют одинаковое значение, тогда выполните «ejabberdctl - not-timeout join_cluser ejabberd @ nodename» в ведомом устройстве. измените ejabberd @ nodename в соответствии с вашей средой. В моем случае я запустил ejabberd с пользователем 'ejabberd' с именем узла как ejabberd @ cluster-node1 (Если вы хотите, вы можете использовать также полное доменное имя, например, ejabberd@example.com)
8. Если выполнена команда abode без каких-либо ошибок узлы находятся в кластере
9. Подтвердите кластер в любой консоли erlang с помощью команды mnesia: info (). здесь вы получите подробности об узле в "running_db_nodes"
10. Ура, вы закончили ...
Для балансировки нагрузки кластера вы можете использовать HAProxy
Пожалуйста, обратитесь https://blog.onefellow.com/post/76702632637/haproxy-and-ejabberd за подробностями
Я не выполнил балансировку нагрузки, используя какой-либо аппаратный балансировщик нагрузки, нужно проверить это.
Если кто-то сделал это, пожалуйста, напишите здесь ..