Магомед
Добрый вечер. У меня на сервере запущена монга, могу ли я подключиться к ней, подобно атласу, через другой компьютер?
Wilson
Добрый вечер. У меня на сервере запущена монга, могу ли я подключиться к ней, подобно атласу, через другой компьютер?
Конечно Нужно только сделать порт, по которому доступна бд доступным для доступа снаружи
Магомед
Конечно Нужно только сделать порт, по которому доступна бд доступным для доступа снаружи
Допустим я настрою nginx на перенаправление запросов на 127.0.0.1:27017 и это всё? Я могу подключаться через mongodb://<ip сервера>:<порт, настроенный в nginx>?
Магомед
Если это будет nginx stream, то вполне. Но там с безопасностью надо посмотреть внимательно
Хорошо, спасибо за наводку! А можно поподробнее, что с безопасностью может быть не так?
Oleg
Хорошо, спасибо за наводку! А можно поподробнее, что с безопасностью может быть не так?
Если открыть "наружу", придут злые боты и своруют данные. Поэтому нужно разрешить доступ только по списку своих IP адресов
OZOD
привет кто разбирается на web socket я создал post function и у меня есть index.html когда я создаю юзер то в index html должно выйти в настоящем времени юзер создан
OZOD
я делаю in node js
OZOD
ну как юзер должен выйти в реалтиме
Dima
Всем привет, пишу на ноде и много информации разной, и чат жпт настаивает, хотя я ему не особо доверяю. Нужно ли мне завершать соединение после каждой функции в которой я использовал соединение к монго? Мангуса на использую, версия монги одна из последних. Это парсер и объемы данных иногда по несколько мб за запрос, ищу утечку памяти, начал думать что это монго
Dima
Нужно ли писать db.close на каждый запрос
Brunello
Конечно, коннекты не закрыть себя не уважать
Daniil
Нужно ли писать db.close на каждый запрос
По моему все таки драйвер работает с пулом соединений самостоятельно
Dima
ну вот даже тут один пишет что да второй нет))
Daniil
ну вот даже тут один пишет что да второй нет))
Отключиться от БД имеет смысл в рамках завершения работы скрипта, graceful shutdown и все такое, после каждого .find условного это делать не нужно конечно
Dima
Отключиться от БД имеет смысл в рамках завершения работы скрипта, graceful shutdown и все такое, после каждого .find условного это делать не нужно конечно
ну вот я создал модуль подключения к базе и импортировал его во все места. Запнулся на моменте что не понятно как затыкать такое.
Dima
И грубо говоря зашел записал какую то инфу и нужно закрыть коннект или оно вырубает.
Daniil
https://www.mongodb.com/community/forums/t/general-question-about-opening-and-closing-database-connections/182860/4
Dima
https://www.mongodb.com/community/forums/t/general-question-about-opening-and-closing-database-connections/182860/4
вот это то что надо, спасибо! в других языках я встречал иные ответы
Daniil
вот это то что надо, спасибо! в других языках я встречал иные ответы
Это скорее от драйвера зависит, чем от языка, пул коннектов в целом стандартный паттерн в этом случае
yopp
Всем привет, пишу на ноде и много информации разной, и чат жпт настаивает, хотя я ему не особо доверяю. Нужно ли мне завершать соединение после каждой функции в которой я использовал соединение к монго? Мангуса на использую, версия монги одна из последних. Это парсер и объемы данных иногда по несколько мб за запрос, ищу утечку памяти, начал думать что это монго
Нет, их закрывать не нужно. Открывать соединение очень дорогая операция При запуске приложения инициализируете клиентов и эти инстансы глобально используете всё время пока приложение работает. Если вы работаете с одним кластером то у вас на один процесс (не тред, именно процесс) приложения должен быть только один инстанс клиента
yopp
ChatGPT и прочие LLM *очень* плохие советчики по монге (и не только) Единственное для чего LLM можно использовать после перепроверки результата, это сделать «скелет» агрегации, чтоб руками много не печатать
yopp
Многие советы очень вредные и следуя им можно выстрелить себе в ногу, как например с соединениями
NO WAR!
Смотрю на обсуждаемые вопросы и даже даже неудобно свой писать. 😀 Но прошу понять и простить. Я только учусь. Есть маленькая база на удаленном компьютере. В базе включена аутентификация. При помощи mongodump перенес базу себе на ноут. Насколько понимаю с архивом я перенес и пользователей. db.system.users.find() показывает на ноуте пользователей которые были созданы на удаленном компьютере. Если включаю аутентификацию на ноуте, не могу войти в базу, хотя точно верно указываю имя пользователя и пароль. Что я делаю не так?
Нуриддин
Как происходил дамп и импорт, посмотри возможно ты востоновил пользователей отдельной базы у которого был доступ на базу и из-за того что востоновил только специфическую базу этот пользователь не появился
Нуриддин
но если отключать аутификацию на mongod всё работает?
Нуриддин
db.getUsers() что отвечает?
Нуриддин
Если есть пользователь то подбери админский пароль или пересоздай его, затем заходи от пользовотеля, сразу проверишь работоспособность
Нуриддин
без перезагрузок настроек
NO WAR!
db.getUsers() что отвечает?
Показывает пользователей
mfgskv ✙
гайз, нужен совет, насколько replaceOne - плохо для обычной бизнес логики апдейта? Есть объект с массивами и нестед объектами, и не хотелось бы проходится по всем полям и отдельно патчить через Set (я юзаю C# - тут это будет кривовато)
mfgskv ✙
насколько часто вы его в проектах юзаете для обычной бизнес операции апдейта доменной сущности?
Nick
насколько часто вы его в проектах юзаете для обычной бизнес операции апдейта доменной сущности?
всегда. Но у меня например модели простые и там обычных апдейтов заглаза. Если удобнее реплейс - это нормальный выбор
Кылычбек
Всем привет У меня есть два кластера для dev и qa, я хочу создать новый кластер и перенести базы данных qa и dev в новый кластер и создать новый кластер, чтобы одновременно иметь две базы данных в одном кластере. Есть ли кто-нибудь, кто имеет в этом опыт? Как это сделать, какие шаги можно предпринять, есть ли какие-нибудь предложения?
Nick
это же mongodump mongorestore?
да, при ресторе укажите через ключ --db
Andrea
Good day
Кылычбек
да, при ресторе укажите через ключ --db
есть другие способы кроме mongorestore или самый оптимальный вариант этот?
Yehor Briz
Всем привет. Нужно обновить все значения во вложенном объекте, пробовал {$set: {"object1.$[]": "new value"} }, но $[] работает только для массивов( Как решить?
Kirilll
Покажи структуру
BIG
Всем привет недавно начал работать с монгоДБ вопрос такой есть развернутое приложение локально так же локально создал бд мне нужно запушить мою бд в клауд(aws) чтобы бд было доступно не только локально, есть кто знает как это делается и мог бы подсказать ?
Нуриддин
Или pbm
Constantin
Приветствую! Есть такая проблема. Надо создать логику которая создает новые данные или инкременитрует count в старых ранее созданных данных. Проблема в том что на скрине на каждый экшн вызывается функция. Если один и тот же экшн вызывается больше 1 раза, то => 1 экшн вызывает функцию. Она создает новые данные. => Все последующие экшины инкрементруют старые а не создают новые данные. Как понимаю проблема заключается в том что на каждый экшин вызывается функция и эти все вызовы выполняются паралельно и происходит *гонка событий* и следовательно данные в ДБ записываются не правильно.
Максим
Привет! Скажите, пожалуйста, почему у меня notUpdatedCurrentBoardTasks не возвращает массив тасков
Максим
.lean() !
для монгоклиента он разве есть? const notUpdatedCurrentBoardTasks = await client.db("tasksdb").collection("tasks").find({"board_id": currentBoardID}).lean() уже ничего не выводит
Максим
Максим
Спасибо
Oleh Kopyl
Йоу. Два вопроса по Vector Search. 1. Как можно $project-нуть vector distance? 2. Как искать по vector distance вместо queryVector?
Romson
Ребята, подскажите, как получить значение по $arrayElemAt из одного элемента $facet в другом? $facet: { first: { ...тут список }, second: { ... тут пытаюсь сделать $arrayElemAt: ["$first", 0] } }
Nick
Ребята, подскажите, как получить значение по $arrayElemAt из одного элемента $facet в другом? $facet: { first: { ...тут список }, second: { ... тут пытаюсь сделать $arrayElemAt: ["$first", 0] } }
также как вы бы сделали это в простой агргеации. Фасет лишь позволяет на одном наборе документов выполнить несколько агргеаций за раз. Поэтому никакой инфомрации пайплайны друг о друге не знают.
Romson
Ребята, на ваш взгляд, это задача для агрегации или стека "бекенд + база"? Есть 1 коллекция. В ней есть поле "premium": (boolean) Нужно выводить коллекцию так, чтобы каждый 5й элемент был premium: true, а остальные premium: false Я пытаюсь писать агреггацию, но выходит такой монстр, что я задумываюсь о том, не стоит ли это перенести на бекенд...
Kvhqm
Скажите, подскажите. У меня есть довольно сложная структура данных, со вложенными объектами и массивами внутри массивов. И мне нужно прикрутить редактирование к этой структуре. И вот я не совсем понимаю как это правильно сделать. Т.е. нужно городить гармошку из условий и switch\case, или есть правильный способ такого редактирования? До этого я не заморачивался, и делал всё по такому принципу: updatedItem.rulesTitle = req.body.rulesTitle updatedItem.description = req.body.description updatedItem.exceptions = req.body.exceptions updatedItem.additionalRuleslinks = req.body.additionalRuleslinks updatedItem.groups = req.body.groups updatedItem.save() Но подсказывает сердце, что это что-то не то, и к тому же после последних обновлений в структуре данных и возврату данных с сервера, это уже не актуально... Подскажите расскажите, помогите, объясните как быть )
Kvhqm
В общем хочу понять, как делается "правильное" редактирования схемы с несколькоуровневой вложенностью
Максим
Здравствуйте, коллеги! Всю жизнь мучил постгрес. Но теперь нужда хранить разные данные: разнообразные документы, чеки, даже текст со скринов. Вопрос: как это правильно структурировать, хранить? Чтобы вытаскивать удобно, аля: type = bill, number = 123, person = Ivan
Alexei
Подскажите по аутентификации монго + спринг бут + тестконтейнерс. Ловлю ошибку : Command failed with error 18 (AuthenticationFailed): 'Authentication failed.' on server localhost:49***. При этом, копирую параметр connectionString в MongoCompass и спокойно наблюдаю admin, local . Cтартую контейнер с mongoDBContainer.addEnv("MONGO_INITDB_ROOT_USERNAME", "admin"); mongoDBContainer.addEnv("MONGO_INITDB_ROOT_PASSWORD", "admin"); https://www.dropbox.com/scl/fi/f3my5xvyssl7bxgao3jpq/MONGO.png?rlkey=koai9nkgsvsa8ijww7epdy5xt&dl=0 В принципе, мне подойдет и отключение аутентификации, только не совсем понимаю, как это сделать.
Nick
Скажите, подскажите. У меня есть довольно сложная структура данных, со вложенными объектами и массивами внутри массивов. И мне нужно прикрутить редактирование к этой структуре. И вот я не совсем понимаю как это правильно сделать. Т.е. нужно городить гармошку из условий и switch\case, или есть правильный способ такого редактирования? До этого я не заморачивался, и делал всё по такому принципу: updatedItem.rulesTitle = req.body.rulesTitle updatedItem.description = req.body.description updatedItem.exceptions = req.body.exceptions updatedItem.additionalRuleslinks = req.body.additionalRuleslinks updatedItem.groups = req.body.groups updatedItem.save() Но подсказывает сердце, что это что-то не то, и к тому же после последних обновлений в структуре данных и возврату данных с сервера, это уже не актуально... Подскажите расскажите, помогите, объясните как быть )
если логика требует, то и гармошку придется городить. Но если достаточно обычного монговского save, то разве что использовать средства языка, которые упростят копирование полей. Например можно вообще копировать все поля объекта или сам объект (хз как там в js корректно это делать)
Kvhqm
если логика требует, то и гармошку придется городить. Но если достаточно обычного монговского save, то разве что использовать средства языка, которые упростят копирование полей. Например можно вообще копировать все поля объекта или сам объект (хз как там в js корректно это делать)
Пока ждал ответа, все переделал, и теперь средствами языка не справиться (сделал для удобства агрегированный запрос который выдаёт только нужные поля по запросу). В общем придётся городить гармошку
Kvhqm
...только id или путь?
Та ты можешь накостылить любой вариант