Anton
27017 Default MongoDB Port
𓆉 𝖙𝖚𝖗𝖙𝖑𝖊𝕶𝖎𝖓𝖌 ࿐
Anton
how?
do u use linux or windows server?
𓆉 𝖙𝖚𝖗𝖙𝖑𝖊𝕶𝖎𝖓𝖌 ࿐
do u use linux or windows server?
linux server on clubhosty
Anton
Anton
sudo ufw status
Anton
show me result in direct message
илья
linux server on clubhosty
sudo ufw allow 27017
илья
sudo ufw status
Alena
как сделать так чтобы при паднеии - Model.create(params) - при логгировании стектрейса были видны ссылки на файлы приложения а не только внутренние монгузовские? другими словами чтобы видеть в какой конкретно строчке упало
Alena
сейчас совсем не информативно -
Kvhqm
А в монго есть какой-то метод, который вытягивает рандомный док? :)
Tony
А в монго есть какой-то метод, который вытягивает рандомный док? :)
https://www.mongodb.com/docs/manual/reference/operator/query/rand/#select-random-items-from-a-collection
Tony
о, пасиба
https://www.mongodb.com/docs/upcoming/reference/operator/aggregation/sample/#pipe._S_sample
Tony
так будет даже проще
Kvhqm
так будет даже проще
Пасиб, ща доеду чекну :)
Berik
Всем привет!Кто может подсказать?Мне в SIEM систему нужно писать все с mongodb в частности создание,удаление баз и таблиц.В postgresql это решается путем установки pg_audit.Как можно подобное реализовать в mongodb?
Berik
В ентерпрайз версии есть аудит, наверняка там чтото подобное будет
а в community(бесплатной версии) бесполезно пытаться сделать?
Berik
эхх печально
Andrey
Да
а с лог файла брать данные разве нельзя
Nick
А там есть что брать?
Andrey
коннекты, да "команды"
Nick
коннекты, да "команды"
И много там команд?) И есть ли у команд ид юзеров?
Andrey
) то есть дроп базы нет в логах ?)
Nick
) то есть дроп базы нет в логах ?)
поправочка, все же логируется, думал по умолчанию все выключено и нужно по факту через дебаг все это включать
Nick
а в community(бесплатной версии) бесполезно пытаться сделать?
корректировка, можно просто лог в json виде отправить в siem и при необходимости пофильтровать. доп инфа по уровням и какие логгеры за что отвечают https://www.mongodb.com/docs/manual/reference/log-messages/#components
Andrey
поправочка, все же логируется, думал по умолчанию все выключено и нужно по факту через дебаг все это включать
Нормально все, просто я давно писал для себя парсер логов, и какие-то критичные вещи от туда вытаскивал для анализа.
Berik
Может кто то уже пробовал в WAZUH засунуть все?
Nick
Нормально все, просто я давно писал для себя парсер логов, и какие-то критичные вещи от туда вытаскивал для анализа.
почемуто в голове сидело что это связано с медленными запросами и без вывода всех запросов не заработает
Andrey
Вопрос такой, _id - составной вида {a: valueA, b: valueB}. valueA - string, valueB - int. Хочу шардировать коллекцию по ключу _id.b - такое возможно, какие подводные камни могу, быть.
Andrey
Вопросы про _id - зачем. Место хочу съэкономить, гигов 450.
Andrey
Если ключ повторится данные не запишутся
ключ не повториться, это понятно. Именно вопрос - всё ли ок, при таком выборе "ключа" для шардирования.
Anton
sudo ufw allow 27017
Тот чувак оказца
Anton
Просто на хостинг код закинул
Anton
При этом монго даже не разворчивал
Anton
Он думал что монго работает внутри джаваскрипт кода
Нуриддин
Технически нет, но стоит понимать что шардирование опаснее реплик ведь в них обычными бекапами не получится снять, а в перспективе на будущее получишь грамадный давнтайм ведь предётся отключать монгос в процессе обновления
Mllse
Всем привет. async crement(bonusCardId: string, amount: { [key: string]: number }) { const pipeline: PipelineStage[] = []; const notSubtracted = {}; Object.keys(amount).forEach((key) => { if (typeof amount[key] === 'number') { const notSubtractedField = ${key}_notSubtracted; pipeline.push({ $addFields: { [notSubtractedField]: { $cond: { if: { $lt: [$${key}, Math.abs(amount[key])] }, then: { $subtract: [Math.abs(amount[key]), $${key}] }, else: 0, }, }, }, }); pipeline.push({ $set: { [key]: { $cond: { if: { $gte: [$${key}, Math.abs(amount[key])] }, then: { $subtract: [$${key}, Math.abs(amount[key])] }, else: 0, }, }, }, }); notSubtracted[key] = notSubtractedField; } }); const updatedCard = await this.bonusCardModel .findOneAndUpdate({ _id: bonusCardId }, pipeline, { new: true }) .exec(); return updatedCard; } Как делать так, чтобы при addFields в обновлении аггрегации объекта, не добавилось поле в самом бд? Мне нужно просто получит это поле, но не надо его сохранять в бд. Я просто щас в ступоре
Нуриддин
Нуриддин
Только желательно чтобы каждый shard и config серваки имели по три годы или арбитер
Aleksander
Господа, всем привет! Подскажите пожалуйста, как правильно настроить секурность в шардированном кластере монги? У меня имеется: 3 хоста под конфиг сервер - работают в реплика сете 3 хоста под конфиг сервер - на них стоит 3 монгос 6 хостов под шарды - 2 реплика сета по 3 шт под шарды Без секурности всё успешно заводится и работает. Мне нужно прикрутить авторизацию на компонентах и общение между компонентами по ключу. Непонятен момент в каком порядке и на каком компоненте делать? На конфиг сервере: установили; успешно сделали инит реплсета; установили security.auth в enable, trantisiontoauth в true и путь до ключа; перезапустили. Пускает без логина и пароля всё равно. На шардах кластерах: установили; успешно сделали инит реплсета; установили security.auth в enable, trantisiontoauth в true и путь до ключа; перезапустили. Пускает без логина и пароля всё равно. На монгосе не понятно что и как нужно устанавливать. Только путь до ключа и trantisiontoauth в true? При security.auth в enable ругается на недопустимый параметр. В доке монги очень расплывчато написано. Могут ли уважаемые специалисты этого чата указать, в каком порядке, какие параметры нужно включать?
Aleksander
Версия 5.0.7*
Aleksander
Коллеги?
yopp
Господа, всем привет! Подскажите пожалуйста, как правильно настроить секурность в шардированном кластере монги? У меня имеется: 3 хоста под конфиг сервер - работают в реплика сете 3 хоста под конфиг сервер - на них стоит 3 монгос 6 хостов под шарды - 2 реплика сета по 3 шт под шарды Без секурности всё успешно заводится и работает. Мне нужно прикрутить авторизацию на компонентах и общение между компонентами по ключу. Непонятен момент в каком порядке и на каком компоненте делать? На конфиг сервере: установили; успешно сделали инит реплсета; установили security.auth в enable, trantisiontoauth в true и путь до ключа; перезапустили. Пускает без логина и пароля всё равно. На шардах кластерах: установили; успешно сделали инит реплсета; установили security.auth в enable, trantisiontoauth в true и путь до ключа; перезапустили. Пускает без логина и пароля всё равно. На монгосе не понятно что и как нужно устанавливать. Только путь до ключа и trantisiontoauth в true? При security.auth в enable ругается на недопустимый параметр. В доке монги очень расплывчато написано. Могут ли уважаемые специалисты этого чата указать, в каком порядке, какие параметры нужно включать?
transitionToAuth это временный ключ который позволяет одновременно и аутентификацию клиентов и подключение без аутентификации. Это нужно чтоб пока ноды и клиенты в кластере переходят на auth, они могли подключаться. После того как вы всем годам и клиентам выкатили аутентификацию, этот флаг нужно убрать
Aleksander
transitionToAuth это временный ключ который позволяет одновременно и аутентификацию клиентов и подключение без аутентификации. Это нужно чтоб пока ноды и клиенты в кластере переходят на auth, они могли подключаться. После того как вы всем годам и клиентам выкатили аутентификацию, этот флаг нужно убрать
Спасибо. Я правильно понимаю, что на кластере конфиг сервера и шардов нужно будет: Установить; сделать инит реплсета; создать пользователя админа; установили security.auth в enable, trantisiontoauth в false и путь до ключа и перезапустить. А на монгосе только путь до ключа и перезапустить?
valkiki
всем привет. кто-ниб может подсказать тупенькому - у меня есть поле в фолмате base64 я хочу добавить новое поле и всю таблицу проапдейтить в нвоое поле конвертнуть из base64 в uuid. как это провернуть
valkiki
не побрезгала gpt чатом она говорит так можно но ее скрипт ен подходит для mongoDB compass может уже кто сталкивался с таким [ { "$addFields": { "uuidField": { "$uuid": { "binary": { "$binary": { "base64": "$base64", "subType": "04" } } } } } }, { "$project": { "base64": 0 } } ]
Andrey
а зачем в монго делаешь новое поле? он сам его должен создать же
Nick
не побрезгала gpt чатом она говорит так можно но ее скрипт ен подходит для mongoDB compass может уже кто сталкивался с таким [ { "$addFields": { "uuidField": { "$uuid": { "binary": { "$binary": { "base64": "$base64", "subType": "04" } } } } } }, { "$project": { "base64": 0 } } ]
попробуйте собрать на агрегации сначала https://www.mongodb.com/docs/manual/reference/operator/aggregation/convert/, если сработает как ожидается, то потом апдейт-с-агрегацией это запустить по всей коллекции
valkiki
а зачем в монго делаешь новое поле? он сам его должен создать же
ну поле мне создаст .net приложение но чтоб ен делать всяких миграций и свистоплясок хотела на уровне бд решить
valkiki
вы агрегаты пишете через эту консоль?
valkiki
пыталась тут но фигню делаю
valkiki
Andrey
Вообще не вижу проблем, фигачишь новое поле, оно при первой вставке его создаст и и все
Roman
вы агрегаты пишете через эту консоль?
вообще если у тебя рабочий проект, то миграции нужно держать в проекте, а не просто ручками базу править
valkiki
Roman
пыталась тут но фигню делаю
мб из-за того, что на топовом уровне массив, а оно хочет обьект
Andrey
У тебя именно миграция те смена типа одного поля и создание нового ?
valkiki
сделай бекап на всякий
сделал копию таблицы на ней играюсь
Roman
пробовала тоже самое
просто {"$addfield"...}
valkiki
У тебя именно миграция те смена типа одного поля и создание нового ?
ну если знаешь как в одном и том же поле тип поменятьи конвертнуть то расскажи как
Nick
мне надо сразу конвертнть значения
пример данных сюда https://play.db-ai.dev/ закиньте (там внизу таб Collections, в него пример доков как они лежат в монге, пример дока лучше вытащить через монгошел, чтобы не напортачить с внутренним рпедставлением