Air
или так
{ $match: { $text: { $search: name }, "category.name": cat }},
Vladyslav
Сергей
Vladyslav
Vladyslav
a
Есть кластер из трех серверов. Один сервер primary. Если он упадет, то другой станет автоматом primary.
Вопрос - а как приложение узнает к какому из них он должен подключаться? Ведь приложение должно подключатся к primary. А primary может менятся.
Nikita
Easy Rider
Как нахрен убрать оплог вообще, чтобы он не рос
Easy Rider
Если реплика мне нужна тупо чтобы работали транзакции, а там еще оплог этот
Easy Rider
засирает место на диске
Easy Rider
может быть реплика без оплога?
Easy Rider
https://t.me/gpt3_unlim_chatbot
Easy Rider
мне тут подкинули, эта херня все знает
Андрей
Slach
Андрей
Slach
Андрей
Андрей
help ведь придуман у всего в линуксе 😉
Андрей
этот бинарник давно депрекейтнули, но и в нём есть помоему опция авторизации в конкретную базу
Андрей
пожалуйста, отрыл у себя старый сервер 😏
Easy Rider
Mashxurbek
Mashxurbek
Место в памяти
Easy Rider
а, да я уже сделал, спасибо
Easy Rider
sudo systemctl stop mongod
sudo nano /etc/mongod.conf
replication:
replSetName: "your_replset_name"
oplogSizeMB: 1024
sudo systemctl start mongod
Mashxurbek
Mashxurbek
Круто
vivi
всем привет, помогите с запросом, пожалуйста
есть функция, например getUsers, туда пробрасываются разные параметры, но они необязательные
например так (nodejs)
export async getUsers (data: {
isTest?: boolean
uids?: UUID[]
type?: string
}
внутри неё пишется запрос в монгу, но как сформулировать его так, чтоб если эти поля были undefined, то они не учитывались?
db.users.find({ name: "John", isTest: { $eq: data.isTest } })
думала, что так это может работать таким образом, что если data.isTest undefined, то просто не будет учитываться (сказал чатгпт). но потом выяснилось, что это так не работает
я ничего не могу родить кроме конструкций вроде
{
isTest:
data.isTest !== undefined
? { $eq: data.isTest }
: { $exists: true }
},
но это дичь - так расписывать каждый из парамсов
есть другой вариант? помогите, пожалуйста
Nick
всем привет, помогите с запросом, пожалуйста
есть функция, например getUsers, туда пробрасываются разные параметры, но они необязательные
например так (nodejs)
export async getUsers (data: {
isTest?: boolean
uids?: UUID[]
type?: string
}
внутри неё пишется запрос в монгу, но как сформулировать его так, чтоб если эти поля были undefined, то они не учитывались?
db.users.find({ name: "John", isTest: { $eq: data.isTest } })
думала, что так это может работать таким образом, что если data.isTest undefined, то просто не будет учитываться (сказал чатгпт). но потом выяснилось, что это так не работает
я ничего не могу родить кроме конструкций вроде
{
isTest:
data.isTest !== undefined
? { $eq: data.isTest }
: { $exists: true }
},
но это дичь - так расписывать каждый из парамсов
есть другой вариант? помогите, пожалуйста
не дичь, если у вас потребность делать такую странную выборку, то и запрос будет дикий
vivi
vivi
ладно, спасибо < 3
vivi
Easy Rider
Есть какой-то способ получить в mongodb параметр, означающий степень загрузки?
Easy Rider
ну типа как степень загрузки процессора
Easy Rider
от 0% до 100%
Easy Rider
к примеру, при 100% будет считаться что база перегружена запросами и не успевает обрабатывать
Easy Rider
мне это надо чтоб нормальную систему защиты от ддоса сделать на уровне приложения
Easy Rider
то есть как бы если 100%, то те ip которые больше всего времени отъедают запросами, начинают отсекаться
Nikita
а тут есть кто воркал с монго и вебсокетами на тсе? интересует мнение о подходе
Easy Rider
че такое тсе
Nick
Nikita
я имею ввиду просто сокеты и монга
Nikita
типа ща
Nikita
я подписываюсь на нотификейшенсы которые у меня прилетают в бдшку, лучше способа чем watch я не нашел в монге
Nikita
Nikita
получилась такая штука, вроде бы все норм и на дисконекте закрываю ченжстримы чтобы утечек не было, но не уверен, что такое можно использовать в проде
wisp
доброго вечера.
прошу, не бейте тапками.
в ноде работаю, но запарился с одним моментом в json.
можете подсказать, как правильнее будет отправить в запросе neededBlock? или можно даже напрямую, без создания сторонней переменной?
const neededBlock = 'items.'+id+'.blocks';
db.users.updateOne({ "id": senderId }, { $inc: { neededBlock: parseInt(blocks[id]) } } );
Nick
Nick
Есть какой-то способ получить в mongodb параметр, означающий степень загрузки?
в db.serverStatus() чистого проца не не нашел, но есть и другие метрики которые можно использовать. Но это все неважно, т.к. если ловить только загрузку по процу не увидишь что сети не хватает или диски перегружены. Если хочется какогото понимания перегруженности, то ставим рядом полноценный мониторинг, в нем набираем историю "нормальной" работы. Потом используем для выявления перегруза, а дальше по событию чтото делать в прикладе
Easy Rider
Nick
это уже гемор
эм, хозяин барин, по мне так и сама идея бредовая и будет отстреливать коннекты в случайном режиме - вот тогда будет гемор в выяснении причин и отладке
Easy Rider
Easy Rider
базу грузануть любой школьник может на сайте
Nick
в том что на сколько это нормально написано при скейле
проведите нагрузочное и узнаете как для вашего железа и окружения нормально это или надо переработать. В общем случае ченжстрим вычитать не ахти какая большая задача, а вот что с событием делать это уже чисто ваше дело и зависит от решаемых задач
Easy Rider
ну например школьник берет 1000 бесплатных проксей и пишет многопоточный ддос кидая тяжелые запросы
Easy Rider
конечно он может для каждого прокси сделать даже меньший лимит чем нормального юзера
Easy Rider
то есть получается, задача решаема только анализом поведения
Nick
а как сделать нормальную систему защиты от ддоса?
для начала расписать виды ддосов от которых хочется защититься, так сказать вектора атак самому проработать. И потом планомерно искать решения на каждый вектор или группу векторов.
Хотя самое главное - а с чего вы решили что вас ктото будет ддосить, и надо ли тратить время и силы на решение пробелмы которой скорее всего не будет. Или не дешевле ли просто переждать атаку как есть
Easy Rider
Easy Rider
хотя бы что-то было чтобы, чтоб сайт не лег
Easy Rider
потому что, ну например в рекламу я вложу миллион рублей, и все коту под хвост будет, уж лучше немного перебдеть