SvPupok
прошу прощения, я с монгусом почти не работаю, но насколько я знаю там есть параметр readPreference который можно указывать при коннекте. Возможно другие коллеги более подробно смогут пояснить.
Aleksey
а это через драйвер определяется ? мы используем mongoos
обычно это на запрос устанавливается
rdcm
всем привет есть небольшой реплика сет arbiter primary secondary, и один инстанс бэкенда хочется запустить второй, но не очень понятно, что делать с арбитром, я на сколько понимаю он может быть только один кто-нибудь сталкивался с таким кейсом?
SvPupok
Арбитров может быть больше
rdcm
😳
rdcm
а есть ссылка на доку где это написано?
rdcm
А что вы под «инстанс бэкенда» подразумеваете?
два контейнера с одним и тем же приложением на двух разных виртуалках
yopp
Вам ничего не нужно дополнительно делать с реплика сетом. Убедитесь что все виртуальные машины с клиентами могут присоединиться ко всем нодам кластера.
yopp
И включите аутентификацию.
rdcm
WARNING In general, avoid deploying more than one arbiter per replica set.
yopp
In general не значит что это совсем запрещено ;)
yopp
Но вам этого и не надо
rdcm
Уже включено :) Но вопрос немножко не про это Мотивация использования арбитра такая, что если разные участники реплика сета потеряют друг друга, возможна ситуация, когда появится два мастера, чтобы этого избежать нужен арбитр
yopp
Кластер останется без мастера
SvPupok
Я когда то читал на гите дискуссию в которой обсуждалось количество арбитров, особенно если репликасет размазан по двум датацентрам
yopp
Но в любом случае: вам не надо ничего менять в кластере в связи с добавленим нового бэкенда
rdcm
>Такой ситуации не будет. для чего тогда арбитр?
yopp
Для того чтоб выбрать мастера
SvPupok
Можно для упрощения выдать веса членам репликасета
yopp
Арбитр нужен чтоб обеспечить большинство в случае если количество нод с данными четное
rdcm
правильно, а если реплика сет из 5 нод, и одна половина не видит другую из-за сетевых проблем, половинки выбирают мастера между собой
yopp
Чтоб нельзя было на 2 без остатка поделать :)
yopp
Вы говорили про дополнительных клиентов — бэкенд. Это никакого отношения к обсуждаемое теме не имеет
rdcm
два запущеных бэкенда, подключенных к репликасету + невозможность описанной ситуации с двумя мастерами
rdcm
Вы говорили про дополнительных клиентов — бэкенд. Это никакого отношения к обсуждаемое теме не имеет
если нельзя больше одного арбитра то я вижу противоречие возможно кто-то решал подобную проблему
yopp
Они не участвуют в выборах
yopp
Если у вас уже 1 арбитр и 2 ноды, у вас все в порядке. Вы можете добавлять клиентов, пока не упретесь в производительность. Дальше вам потребуется масштабировать кластер: либо вертикально, добавляя ресурсов к существующим нодам (проще, не рекомендуется) или использовать шардинг (сложнее, рекомендуется).
rdcm
а если арбитр упадет?
SvPupok
Вас смущает возможность выбора мастера из двух нод?
rdcm
скорее ситуация, когда нод 5, а приложений больше 1го
SvPupok
Я думаю количество клиентов которое работает с репликасетом роли особой не играет. У меня в проекте были репликасеты с двумя нодами на быстрых дисках а третья нода была на ненадежном хранилище. Ситуацию с отвалом ненадежной ноды и голосованием среди двух нод решили назначением весов членов репликасета.
yopp
скорее ситуация, когда нод 5, а приложений больше 1го
Кроме ряда редких случаев, вам не нужны 5 голосующих нод.
yopp
Количество клиентов никак не влияет на топологию кластера.
yopp
Вы можете подключать столько клиентов, сколько хватит производительности. Это никакого отношения к количеству нод не имеет
yopp
В монге есть две технологии. Одна для устойчивости (HA/FT) — репликация с автоматическим восстановлением после сбоев. Называется Replica Set. Вторая для масштабирования — сегментирование и балансировка данных. Называется Sharding. Первую технологи можно в некотором виде использовать для масштабирования, но она для этого не предназначена. Это официальная позиция разработчиков монги. Если у вас 10 нод в replica set и вы их используете для масштабирования, вы решаете свою задачу неподходящим инструментом.
rdcm
Я представляю разницу между репликасетом и шардингом :) Есть нюанс, про который забыл упомянуть Арбитр развернут на той же тачке, что и единственный инстанс приложения. Т.к. процесс mongod в режиме арбитра легковесный Собственно сейчас я задумался, а правильно ли это С другой стороны, отдельную виртуалку под него жалко
Andru
Всем привет. Вот есть оператор $in. А есть ли какой-нибудь $notin или альтернатива? Не могу в доке найти
Andru
https://docs.mongodb.com/manual/reference/operator/query/nin/#op._S_nin
Спасибо, написал сюда и сразу нашел) неправильно у гугла спрашивал
Hotboy 😎
Hello guys
Hotboy 😎
I'm running electron & I wanna connect to mysql ....any help ??? Or link
Hotboy 😎
found something like this
Hotboy 😎
//creating our own server with node.js const http = require("http"); //bring in the file system moudle const fs = require("fs"); const hostname = '127.0.0.1'; const port = 3000; fs.readFile("index.html", (err, html) => { if(err){ throw err; } const server = http.createServer((req, res)=>{ res.statusCode = 200; res.setHeader("Content-type", "text/html"); res.write(html); res.end(); }); server.listen(port,hostname, ()=>{ console.log("Server Started on port "+port); }); });
Hotboy 😎
but not really working im still on search
Nick
but not really working im still on search
may be just start learning from scratch? at first you need to start use node.js docs, then express framework, after that go to usage db
Hotboy 😎
yes sure cos i have not actually learn node.js .....im just using my javascript skill to go with it
Hotboy 😎
hey are you the only one who can speak English here
Nick
js is base to learn node.js, node.js is base to create you web (http) server application. It's really simple with node.js but you should learn it before use databases.
Nklya
hey are you the only one who can speak English here
This is russian speaking channel about MongoDB. How is this related to Electron?
Hotboy 😎
ooh no problem i used Mongodb to but i just wanted to ask a question sorry
Nick
I'm not the only one, I think other people don't read chat all time. Moreover your question is offtop. So if you need some help with mongodb there is english mongodb group https://t.me/mongo_db
Nick
And when you will with electron you can google "how to work node.js and $some_shit" it should give more answers than only electron+some_shit
Andru
Всем привет. Юзаю монгуз. Есть модель: const game = new Schema( { name: { type: String, required: true }, items: [ { item: { type: Schema.Types.ObjectId, ref: 'item' }, order: { type: Number, default: 0 } } ] } ); Когда обновляется коллекция 'item', например, какие-то доки в ней удаляются, соответственно я хочу, чтобы эти же доки удалялись и в items в модели game. Делаю так - удаляет вообще все из items в модели game: await Game.update({ _id: id }, { $pull: { items: { item: { $nin: items } } } }); Вот так работает: const game = new Schema( { name: { type: String, required: true }, items: [{ type: Schema.Types.ObjectId, ref: 'item' }] } ); await Game.update({ _id: id }, { $pull: { items: { $nin: items } } }); Но мне нужен именно первый вариант модели для реализации ручной сортировки items внутри game. Ну и сам вопрос - почему в первом варианте не работает корректно $pull, что я делаю неправильно? Заранее спасибо.
headbody
Простите, но я совсем скрипт кидди и буду задавать совсем глупые вопросы, да я пробовал гуглить, голова пока кругом идёт. Мне нужно конвертировать файлы из csv в json, какие утилиты для этого есть, чтобы mongo корректно кушал json? Ибо пока что я как лох пользуюсь http://www.convertcsv.com, потому что там есть отдельная удобная кнопочка под монго, но вебом не всегда удобно пользоваться.
Slava
забавно, vscode выпустили апдейт в котором теперь можно работать с монгой прямо из vscod'a https://code.visualstudio.com/docs/azure/mongodb
Slava
еще не успел
Andru
еще не успел
ну как-то работает, данные показывает, хз насколько хватит функционала, надо будет еще покурить настройки и возможности
V
Ребят, есть какие-то предпосылки не ставить mongo в проде в docker/kubernetes
Stepan
я слыхал, что в докере другая файловая система и могут быть проблемы
Stepan
но о конкретных случаях не слышал
Oleg
Ребят, есть какие-то предпосылки не ставить mongo в проде в docker/kubernetes
зависит от прода докер это из разряда долго запрягаем и быстро едем
Oleg
долго запрягаем? кого?
деплой окружения
Ruslan
деплой окружения
+1, очень долго репликасет настраивал
Oleg
настроить кибернетс\ранчер это муторная тема чтоб это все балансилось, контейнеры линковались и писали в нужный файловый драйвер
V
получается предпосылок НеДелать этого нет?
Oleg
продакшеном правит бизнес если у вас 3 физических хоста то быстрее и следовательнее дешевле не парится с этим или пользоваться просто докером с докер-компоуз
Oleg
у нас средний-маленький прод, 40 хостов
а команда сколько человек?
Oleg
есть время\ресурсы потратить пару недель?
V
потенциально будет полтора человека