Andrew
есго скорее всего тогда не было
ага... тут все древнее как мамонты :(
!Древній Укр
либо дампим, удаляем все, и папку с данными монги и устанавливем по новой уже 4 версию и ресторим дамп
вот так хочу —- можете подсказать где папку с данными монги храниться ?
Nick
если явно указывали --dbpath то там, если нет то скорее всего в /data/db
Gor
(была 2.6)
угу. обновлять поочередно на 3.4 3.6 4.0
p
всем привет! запускаю монгу с включенным шифрованием из коммандной строки: mongod --enableEncryption --encryptionKeyFile c:\key\mongodb-keyfile все ок пытаюсь сделать настройки в mongod.cfg, чтобы стартовала как windows сервис с включенным шифрованием, но при старте сервис выдает ошибку. В файл конфигурации добавил: security: enableEncryption: true encryptionKeyFile: c:\key\mongodb-keyfile
p
я в курсе, из командной строки все работает, все шифруется. но там я передаю два параметра: включить шифр и путь к ключу как эти параметры указать в mongod.cfg?
yopp
какую ошибку выдаёт сервис?
p
error 1067: the process terminated unexpectedly
yopp
error 1067: the process terminated unexpectedly
это ошибка системы управления сервисами. монга на стандартный вывод будет писать что пошло не так
yopp
или в лог
yopp
но я не уверен будет ли она писать что-то в лог, если в конфиге ошибка
p
я запустил mongod без параметров в консоли - начала писать что не может прочесть файлы тк они зашифрованы похоже что параметры в конфиге игнорируются
p
так и есть, номер порта поменял с 27017, но все равно по нему отвечает
yopp
попробуйте явно указать путь к конфигу
Anonymous
привет. подскажите, хочу сделать чтоб бд смотрела в интернет и была доступна только с одного ip. net.bindIp в конфиге это оно? не совсем понял, что он делает. Написано, перечислить ip, на которых монга слушает входящие запросы ( IP addresses ... on which ... mongod should listen for client connections.), а не от которых. Возможно, не так перевожу.
Andrey
ограничивать ip клиентов нужно через nat/firewall
Anonymous
Andrey
какая директива? это средства ос
Anonymous
нет, я про net.bindIp. Говорю ж, не понял описание 😁
Andrey
слушает порт по указанному адресу
Andrey
с TCP же работаешь когда создаёшь listener там 2 параметра адрес и порт
Anonymous
не, сложно сложно непонятно. по указаному адресу будет висеть лиснер монги? это на случай, если я разрулю ip адресацию с машины, чтоб типа руками задать, что если с машины на которой запущена монга послать запрос на ip из конфига монги, то она ответит?
Andrey
лиснер монги да, что ты дальше написал не понятно, давай в терминологии есть сервер (машина где крутится монга), есть клиент( где крутится апликуха которая конектится)
Andrey
ты можешь указать внешний адрес например, в интернете который виден можешь адрес внутри сети интранет локальный
Anonymous
у меня не получается понять, вот если в конфиге я указываю адрес, на котором будет висеть процесс монги и на который будут приходить с клиентов, я же не могу указать рандомный IP и просто начать на нём слушать (например ip сервера гугл)? я как-то представляю это себе, что у сервера есть собственный ip в сети интернет, ip в локальной сети (которой в моем случае нет), и 127.0.0.1 - loopback . Ничего не понимаю, help me
Andrey
ну ты и написал же
Andrey
у сервера есть собственный ip
Andrey
его и указывай
Andrey
если нужен доступ из интернета
Andrey
если доступ нужно только с локального сервера то 127
Andrey
если из ИНТРАнет то адрес внутри этой сети, например 192.168 ...
Andrey
по сетям хорошая книжка Таненбаума
Anonymous
его и указывай
просто мне не понятно зачем, разве он не равносилен 127.0.0.1 (если локалхост не переопределён)? то есть если я буду слушать 127.0.0.1:27017 то входящий запрос на my.server.i.p:27017 не перейдёт автоматом на 127.0.0.1:27017 (если смотреть "от лица" сервера) ? Или эта директива смотрит, был ли входящий запрос послан на ip, совпадающий с одним из указанных в списке и принимает решение?
Andrey
напиши адрес сервера и адрес клиента
Andrey
директива не смотри, она устанавливает лиснеру адрес
Anonymous
директива не смотри, она устанавливает лиснеру адрес
вот этого я и не понимаю. лиснер - процесс монги. Он может слушать порт машины, у которой заведомо есть некоторый ip. 🔄Если указываю 127.0.0.1, то запросы с сервера будут идти самого себя, потому что так определено заранее, и на порт, указанный в конфиге. ок 🌎Если я указываю в кофиге другой ip, то этот ip при запросе с сервера,чтоб к примеру запросить опять же самого себя, или с клиента в любой точке мира должен зарезолвиться на этот самый сервер. 💥 А если я укажу внешний ip сервера в конфиге не верно, то что? я по идее не смогу послать сигнал лиснеру монги ни с самого сервера с монгой (за исключением...), потому что запрос уйдёт не туда (а на чужой сервер), ни с любого клиента (потому что до моего сервера запросы не дойдут, у моего сервера другой ip). В чём смысл тогда, если вся работа директивы сводится к [позволять запрсы с внешнего ip(отличного от 127.0.0.1] и [не позволять]. Я понимаю, что скорее всего это не так, и я заблуждаюсь, и хочу разобраться. что я упускаю? может, тут может иметь значение, что монга может быть установлена на нескольких серверах? или что на одном сервере может быть запущено несколько инстансов с разными конфигами (соответственно, значениями ipBind) ? Если я в конфиге задам 127.0.0.2 , я смогу с сервера послать сигнал по этому ip?
Andrey
у тебя сервер может быть а нескольких сетях
Andrey
и ip не ограничиваются локальным и внешним
Anonymous
у тебя сервер может быть а нескольких сетях
ааааа, боже 🤦🏿‍♂️ теперь дошло, спасибо.
Andrey
докер к примеру создаёт несколько сетей, там можно сервисы изолировать по ним, у него свой днс поднимается
Maik
Всем привет, подскажите из за чего может быть следующая проблема:
Maik
Есть приложение работающее через пхп с БД монги, при удалении данные помечены как удаленные, но по факту астаются в БД и приходиться делать repaid чтоб их отчистить или удалять из студии
Stas
Привет. Подскажите, как в модель mongoose добавить поле, которое может быть и типа [String] и просто String?
Gor
вот этого я и не понимаю. лиснер - процесс монги. Он может слушать порт машины, у которой заведомо есть некоторый ip. 🔄Если указываю 127.0.0.1, то запросы с сервера будут идти самого себя, потому что так определено заранее, и на порт, указанный в конфиге. ок 🌎Если я указываю в кофиге другой ip, то этот ip при запросе с сервера,чтоб к примеру запросить опять же самого себя, или с клиента в любой точке мира должен зарезолвиться на этот самый сервер. 💥 А если я укажу внешний ip сервера в конфиге не верно, то что? я по идее не смогу послать сигнал лиснеру монги ни с самого сервера с монгой (за исключением...), потому что запрос уйдёт не туда (а на чужой сервер), ни с любого клиента (потому что до моего сервера запросы не дойдут, у моего сервера другой ip). В чём смысл тогда, если вся работа директивы сводится к [позволять запрсы с внешнего ip(отличного от 127.0.0.1] и [не позволять]. Я понимаю, что скорее всего это не так, и я заблуждаюсь, и хочу разобраться. что я упускаю? может, тут может иметь значение, что монга может быть установлена на нескольких серверах? или что на одном сервере может быть запущено несколько инстансов с разными конфигами (соответственно, значениями ipBind) ? Если я в конфиге задам 127.0.0.2 , я смогу с сервера послать сигнал по этому ip?
слушай. я немного не понимаю этой тенденции с вставлением emoji аля 🌎 - расскажи почему вставляешь? Реально интересно. Вот спам прилетает в чаты - тоже вставляют.
Anton
Щас сам телеграмм мотивирует юзать эмоджи. Ты такой пишешь «гавно», а телега предлагает отправит эмоджу вместо этого. Скоро перейдём на общение картинками(
Gor
- 5000 лет. вернемся к пиктограмам)
Gor
или они глифы правильно называются?
Anonymous
слушай. я немного не понимаю этой тенденции с вставлением emoji аля 🌎 - расскажи почему вставляешь? Реально интересно. Вот спам прилетает в чаты - тоже вставляют.
Логическое разделение, иллюстрации. Наблюдаю тенденцию, что в чатах редко отвечают, если сообщение длинное, подробное. Если раздробить его подобным образом - вероятность, что его прочтут и я получу ответ, выше. Согласен, при беглом просмотре напоминает спам 🤷🏿‍♂
Gor
интересная тенденция конечно
Anonymous
Подскажите, вот у меня в документе есть поле. Его значение (значения) имеют однозначно соответствующую им запись в другой коллекции, но в первой коллекции мне обычно надо толлько название. Как мне лучше такое организовать? Например: Person { name: "John", pets: ["cat", "dog"], } Pet { name: "cat", says: "meow" } Pet { name: "dog", says: "woof" } Не знаю как правильно организовать связь этих двух моделей.
Egor
Кто быстренько подскажет, как можно и можно ли поменять таймзону у монги?
Egor
в монге нет тайм зон
Проблема появилась, с монги 3 восстановил на монгу 4 дамп...все ок, пашет все как надо НО даты похерились...в монго делаю на новом new Date() - показывает вернопо UTC , на старом new Date() - показывает МОЕ время +еще таймзону
Nick
вот этого я и не понимаю. лиснер - процесс монги. Он может слушать порт машины, у которой заведомо есть некоторый ip. 🔄Если указываю 127.0.0.1, то запросы с сервера будут идти самого себя, потому что так определено заранее, и на порт, указанный в конфиге. ок 🌎Если я указываю в кофиге другой ip, то этот ip при запросе с сервера,чтоб к примеру запросить опять же самого себя, или с клиента в любой точке мира должен зарезолвиться на этот самый сервер. 💥 А если я укажу внешний ip сервера в конфиге не верно, то что? я по идее не смогу послать сигнал лиснеру монги ни с самого сервера с монгой (за исключением...), потому что запрос уйдёт не туда (а на чужой сервер), ни с любого клиента (потому что до моего сервера запросы не дойдут, у моего сервера другой ip). В чём смысл тогда, если вся работа директивы сводится к [позволять запрсы с внешнего ip(отличного от 127.0.0.1] и [не позволять]. Я понимаю, что скорее всего это не так, и я заблуждаюсь, и хочу разобраться. что я упускаю? может, тут может иметь значение, что монга может быть установлена на нескольких серверах? или что на одном сервере может быть запущено несколько инстансов с разными конфигами (соответственно, значениями ipBind) ? Если я в конфиге задам 127.0.0.2 , я смогу с сервера послать сигнал по этому ip?
бинд адрес нужен ос чтобы понят ьс какого сетевого интерфейса принимать запросы, при наличии нескольких физических (сетвых карт) или виртуальных (просто интерфейсов) приложение будет слушать только с конкретного. 0.0.0.0 для приема с любого. так же позволяет разделить видимост ьпо подсетям к которым подключен сервер. вставлю ремарку что ничего не мешает у себя в сети объявить себя сервером гугл и настроит ьмаршрутизацию на ваш сервер и все будут долбитсья к вам вместо гугла
Nick
в монге сохраняется только датавремя без таймзоны
Nick
https://docs.mongodb.com/manual/tutorial/model-time-data/
Nick
если вам зачемто нужны таймзоны, то сохраняйте их отдельно
Nick
его тоже обновляли?
Max
@dd_bb
Nick
напомните как wt освобождает место на диске при уменьшении количества данных?
Ринат
хмм никак? нужно запускать или https://docs.mongodb.com/manual/reference/command/compact/ или синк реплики с пустого спейса
Serhii
ребята, по произвордительности если нужно достать по айди элемент, лучше юзать findById или findOne?
Ivan
Одно и то же
The first
если обращаешся по полю отличному от _id - навесь индекс на него
The first
(если записей много)
Serhii
понял спасибо ребзи
Stas
Как в mongoose сортировать по полю, которое в переменной. Сортирую так: Data.find({id: myId}, null, {sort: {amount: 1}}) Но как мне написать универсальную функцию, чтобы в нужный момент я мог сотировать по чему угодно?
Nick
генерьте объект сортировки
Stas
Хм, точно, я почему-то не подумал об этом Спасибо)
Stas
генерьте объект сортировки
Какие-то проблемы. По такой схеме я решил делать выборку из бд, передаю в функцию field и value и делаю так: const search = {} search[field] = value return await Data.find(search) В итоге возвращает пустой массив.
Nick
а почему массив передается в find? он ожидает объекты
Stas
Нет, в итоге создается правильный объект. Это не массив, это такое обращение к свойству объекта. Допустим передаю в функцию field = 'id', а value = 3 и создается такой объект: { id: 3 } Но мне почему-то ничего не возвращает
Nick
ужасный способ написания кода
Stas
Я буду рад если ты мне поможешь правильно написать это
Nick
точно поле id а не _id ?