Nick
У меня в базе лежат определенные граничные значения для разных метрик, например, бак с топливом должен быть не менее чем 100 литров. MQTT шлет мне постоянным потоком данные о том сколько сейчас литров в баке, буквально каждую секунду. Все это я сразу же сохраняю в MongoDB через Kafka Вопрос в том, что я не хочу писать какой-то сервис который будет вытягивать события которые я сохранил и сравнивать их с граничными значениями, а хочу чтобы это происходило прямо во время Insert'a в DB Например, из Kafka приходит Event что PetrolTankValue = 99, а в граничных значениях у меня лежит что PetrolTankValue должен быть не менее 100, в этом случае мне нужно создать новый документ в отдельной коллекции на моменте когда событие о наполнении бака с топливом только попало в базу
что дальше будет происходить по факту срабатывания триггера? создастся сообщение в кафку или запаись в базу или еще чтонить?
Nick
Запись в базу только и все
тогда достаточно триггеров атласовских
Alexandrr
тогда достаточно триггеров атласовских
триггер тут не подойдёт, потому что он написал, что не хочет потом читать из бд и ещё куда-то данные отправлять из бд, а хочет ещё сразу куда-то кроме бд отправлять
Oleksandr
А с триггером этого делать не придется по идее
Oleksandr
Оно будет на каждый Insert проверять эти граничные значения
Alexandrr
Не совсем, я имел ввиду что не хочу читать из БД чтобы создать вот эту запись срабатывания
ааа, ну тогда да, точно триггер, жаль что они имеются только у атласа
Alexandrr
Но может к версии 150.0 и сделают всё-таки хранимые процедуры
Nick
наоборот, чем проще БД тем реже в нее заглядываешь и решаешь всякие проблемы. Ну и размазывание бизнес логики на БД это уже давно признак плохого проектирования. Даже те же триггеры у человека выше это костыль, т.к. надо ставить детектирование на потоке из кафки и порождать записи в базу
Oleksandr
А не после Insert'a?
𝔏𝔢𝔯𝔬𝔶
ты чекнул логи?
𝔏𝔢𝔯𝔬𝔶
у тебя конфиг отличается от локального и прод?
Kamil
Короче индексы руинят, autoIndex: false решило проблему
Дмитрий
Добрый день. Подскажите как остановить mongod. Оказалось что мой процессор не поддерживает avx инструкции. service mongod stop не работает у меня всегда показывает статус failed вместо inactive. И я не могу убить процесс mongod потому что он постоянно перезапускается с новым pid. Debian 11
Андрей
https://www.mongodb.com/docs/mongodb-shell/
Damir
/usr/bin/mongo :)
Damir
пакеты mongodb-org-shell ставил хоть?)
Damir
или с инета качал напрямую
Sergey spbsite
https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-red-hat-tarball/ по этой инструкции делали?
Димитрий
Не могу разобраться с загрузкой простой картинки на бэк, вроде контроллер отрабатывает нормально ( 1 скрин ) получаю из response путь. Но банально не могу засунуть его в src(2скрин), подскажите что я делаю не так
Димитрий
🅰️nimeCoder
Так авторизация была, ало
мм, некро пост, а почему так рано написал? подождал бы 5 лет
Димитрий
Что за путь на 1 скрине?
по идеи мне его multer отдает
Vladyslav
по идеи мне его multer отдает
Так а в чем ошибка то?
Димитрий
Так а в чем ошибка то?
Путь приходит, а как мне к нему обратиться я что-то не понимаю
Vladyslav
Путь приходит, а как мне к нему обратиться я что-то не понимаю
Server URL + путь что приходит и также проверить позволяет ли сервер оттуда получать картинки
Vladyslav
И к 1 скрину: в логе невидно расширение файла
Роман
Здравствуйте, подскажите как сделать сортировку по длине поля модели, только вот оператор project забирает все поля, я не хочу тупо переписывать все поля модели в project. есть способ сделать это как-то иначе?
Роман
То есть project обрежет все поля кроме field
Роман
Можно ли как-то сортировать по длине строки не используя для этого оператор project
Роман
Или может быть задать ему какие-то опции чтобы он не обрезал все остальные поля
Easy Rider
При запросе? Ну там, sort же есть
Роман
Так field_length определяется в операторе $project
Роман
Может быть я могу определить это поле в sort как-то..
Роман
Придумал использовать вместо $project - $set
Роман
работает
Роман
Надо посмотреть
Роман
Но мне$set помог
Роман
Роман
Стоп
Роман
Я удалил поле length а потом сортирую по нему)))
Роман
вот
Alexandrr
Я удалил поле length а потом сортирую по нему)))
удалил и переименовал - разные вещи
Роман
ну, в project я его исключил, не так ли?
Alexandrr
ну, в project я его исключил, не так ли?
вообще, называть каждое поле логином пользователя плохая идея
Роман
Не понял о чем вы
Роман
О каком 'логине' и 'каждом поле' речь
Роман
кстати ещё интересный вопрос, хорошая ли практика собирать массив пайплайнов и потом с ним делать aggregate
Роман
Просто так гораздо легче условия прописывать))))
Роман
Не разобрался как сделать условный unwind, то есть по условию исключить поле
Роман
Мне кажется фильтр это условия для самих полей документов, а у меня значение приходит из req.query, filter разве для этого подойдёт?
Роман
Да, мозги запутал
Роман
Постараюсь понятнее изложить
Alexandrr
Да, мозги запутал
я не гестапо ;)
Роман
Фильтру можно в инпут передать внешнее значение которое приходит из req.query?
Роман
Я думал это обязательно должно быть поле документа
Роман
Мне кажется так не делается
Роман
Я либо всем документам делаю unwind либо ни одному
Роман
В зависимости от req.query
Роман
Я не думаю что фильтр для этого предназначен
Роман
Надеюсь понятно изложил
Alexandrr
Фильтру можно в инпут передать внешнее значение которое приходит из req.query?
при чем тут значение переменной на уровне кода и сборка аггрегационного пайплайна?
Роман
const pipeline = [ ] const posts = query.posts //true; if (posts) { pipeline.push({$unwind: "posts"}) }