Yury
Пробовал сделать первую ноду всегда primary вот так, но не получается.
lmn
к примари подключаетесь точно?
Yury
Строка подключения выглядит так
MONGO_CONNECTION_URI=mongodb://127.0.0.1:30001/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.6.2
Yury
к примари подключаетесь точно?
А вот подскажите, как задать/узнать, какая нода является primary? Или, у меня строка подключения неверная, и там нужно все три ноды указывать?
Yury
Через запятую
lmn
команда есть в монгу чтобы узнать примари. я уже не помню ее погуглите
lmn
#mongosh "$dbPath" --eval 'var m = db.isMaster(); print("Is Primary?", m.ismaster); print("hosts:", m.hosts); print("Primary:", m.primary)' --quiet
lmn
что то такое вроде
Yury
Есть ли способ автоматизировать этот процесс?
Yury
lmn
да я не помню уже давно игрался с репликасетом. автоматизировать скриптом
lmn
мне для монгоипорта надо было так что меня только примари и интересовал
Yury
lmn
если просто из прилаги вроде так подключаемся со всеми портами
mongodb://localhost:30001,localhost:30002,localhost:30003/?replicaSet=rs0
Yury
Yury
MONGO_CONNECTION_URI=mongodb://127.0.0.1:30001,127.0.0.1:30002,127.0.0.1:30003/?replicaSet=rs3&serverSelectionTimeoutMS=2000&appName=mongosh+1.6.2
lmn
это для аппы а не для монгошела
lmn
хотя и для него наверное. не помню уже) давно было. помню возился пока получилось все)
lmn
ну про жс я вообще не в курсах. из того что у меня осталось под рукой только это сорян)
Yury
Yury
По итогу могу подключиться к одной ноде
Yury
mongodb://127.0.0.1:30001/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.6.2
Yury
А к репликам не могу
Yury
ни через компас
Yury
ни через бекенд
Evgenij
Вот так указать список всех реплик.
Соединение будет всегда установлено с primary node
mongodb://localhost:27017,localhost:27018,localhost:27019/?replicaSet=myReplicaSet&...Other_Options...
Evgenij
зачем к неактивным подключаться напрямую?)
Yury
Yury
пытаюсь через компас
Yury
Возможно, это из-за того, что реплики поднимаю в докере?
Evgenij
ну так варианта два:
1) делайте expose портов монги на всех контейнерах с репликами в разные порты хоста, юзаете строку подключения, как я увидел уже два раза выше указали
2) делаете доп контейнер в бридже контейнеров монги, который прокидывает коннект во все три с выбором ниже и экспозит в один порт на хост
Evgenij
Кстати, я сейчас у ChatGPT спросил что делать в вашей ситуации - и она оба варианта которые я выше написал и предложила (я не очень с монгой, так что решил себя перепроверить)
yopp
Alexandrr
Yury
Air
"name": "ab cd"
"name": "dc mn"
"name": "cd ko"
db.items.find({name: "ab cd"})
Находит первую запись
А как найти все записи, которые содержат "cd" ?
(я казуал)
Vladyslav
Air
Air
А такой подход ок для поиска по 5млн записям?
Vladyslav
Ты ювелир
i еще вконце добавь, если нужно case insesitieve
Илья
насколько херовый запрос?
задача:
у элементов коллекции есть свойство trxs, оно содержит массив объектов, примерно так [{status: 'success', data: 'test1'}]
нужно получить те элементы коллекции у которых в массиве только status: canceled
Илья
этот код нейросеть предложила, он работает
yopp
Илья
а так в целом получается правильное направление?
yopp
В целом да
Viktar
Мне кажется достаточно первого условия
Илья
Не достаточно
Илья
Он тогда возьмёт прост где у одного из элементов кансел
Илья
А другие проигнорит
Илья
А эти $ne их исключают
yopp
А у вас в status массив?
Илья
У меня в trxs массив
Илья
Статус строка
Илья
В trxs лежит массив объектов
Илья
У которых одно из свойств статус
Илья
Нужно получить те записи в монге где в trxs у всех объектов статус canceled
Vladyslav
Илья
1 скрин — то, что не должно браться запросом, 2 скрин — то, что должно
Илья
Vladyslav
вам стоить глянуть в сторону группировки
Vladyslav
либо еще пробнуть $nin и кинуть в него все ненужные статусы
Илья
https://stackoverflow.com/a/23622265
Нашёл такой солюшен, выглядит самым адекватным
Илья
Ваши предложенные не работают
Alexandrr
firewall?
Yury
Ребят, я новый в администрировании БД.
Есть у кого docker-compose файл, где поднимается монга с репликами + настроены все базовые вещи вроде создания backup, авторизация и т.д?
Yury
Я в инете искал, нашел, но подумал спросить на предмет каких-то проверенных решений, чтобы на линукс-хостинге запустил этот докер файл, и готово.
Александр
Подскажите, как в монго добавить данные с ключами которых нет в модели?
Vladyslav
Александр
что имется ввиду? поконкретней
Мне нужно получить данные с вебхука. Но вебхук может сбрасывать разные наборы данных с полями которые я могу и не предусмотреть. Т.е сегодня может идти условно имя и тлф, завтра имя и емейл послезавтра емейл и Ник телеграма и куки с страницы и ещё какое-то доп.поле. Т.е все комбинации модели данных я просчитать не могу. Как-то у меня получилось такое сделать, но код потерял и не могу понять как повторить это
Vladyslav