Alexander
Так tail у тебя же стринг🤔
Нет-нет, это массив, просто я пушу туда id пользователя, но преобразую id из integer в string в процессе сохранения
Alexander
Kool
Как ловить дисконнекты монги? Добавил обработчик в mongoose.connect, но при закрытии монго-сервера, ошибок никаких в приложение не прилетает и валится только при запросе
Kool
server instance pool was destroyed с такой ошибкой валится
Kool
keepAlive стоит
yopp
server instance pool was destroyed с такой ошибкой валится
http://mongodb.github.io/node-mongodb-native/3.0/reference/management/sdam-monitoring/
Kool
mongoose те же ошибки эммитит?
yopp
ничего не могу сказать про реализацию в js. SDAM является стандартным для mongo механизмом мониторинга изменений в топологии
Kool
навесил эти ивенты на mongoose.connection - 0 реакции
yopp
ищите в недрах mongoose. судя по документации там есть только высокоуровневые события connected/reconnected/disconnected
yopp
если они вас не устраивают то вам надо найти способ как подписаться на собтытия от sdam
Bro
а можно как-то сделать
Bro
в аггрегации
Bro
чтобы убрать элементы которые есть уже в другой коллекции?
KDM
Коллеги, здравствуйте! Подскажите, пожалуйста, правильно ли я понимаю, что данное выражение: if users_db.find_one({'$and' : [{'chat_id': message.chat.id}, {'fraction': {'$in':['Люди','Орки']}}]}): расшифровывается как - если находишь поле chat_id с такими-то айди И поле fraction со значением Люди ИЛИ Орки - выполнить действие такое-то?
Dmitriy
Если найдена запись в бд соответствующая условию чатид такой-то и фракция люди или орки, то сделать что-то
Nick
чтобы убрать элементы которые есть уже в другой коллекции?
задача не ясна, сформулируйте поконкретнее
Bro
есть коллекция-очередь и коллекция с данным полученными после обработки очереди. есть процессы которые пишут постоянно в коллекцию очередь и процесс который извлекает элементы и обрабатывает порциями по 1000 штук
Bro
думаю аггрегацию может сделать чтобы выборку сделать из коллекции очереди 1000 элементов которых еще нет в другой коллекции
Dmitriy
ребят, ткните плз носом куда читать по аф, нужна агрегация одним запросом по разным условиям, если конечно такое возможно?
Max
Привет, есть агрегация которая возвращает статистику по коллекции следующего вида:
Max
Max
всё хорошо - но есть проблема - пропуски в датах. то есть если нету данных за 23 число - то записи не будет. Есть ли способ как-то это решить? то есть я хочу чтобы были дефолтные значения с count = 0 а идей как это сделать нету
Max
нет, делайте это на стороне приложения
спасибо - уже сделал, но это node.js код, и постоянное создание дефолтных значений блокирует выполнение кода. не критично, но всё же
Nick
эм, как один проход по данным может блокировать код?
Nick
блокируют всякие синхронизации, операции с внешним миром, но никак не обычный процессинг ответа
Max
блокируют всякие синхронизации, операции с внешним миром, но никак не обычный процессинг ответа
код там - js-овский, выполняется в один поток. Что я делаю - беру нужный тайм-ренж, маплю его в массив объектов, с дефолтными 0-выми значениями, и мёржу с получеными в бд-шке данными. и всё это на стороне сервера, в один, блокирующий поток. и мне это не нравится) ищу обходные пути - не то чтобы мне горит, просто любопытно, как это можно обыграть по-иному
Nick
С сего вы взяли что будет именно один поток? Найстройте сколько вам нужно. И не думайте о производительности, пока не настроете метрики и не зададите метрики, относительно которых будете определять необходимость оптимизаций
Max
С сего вы взяли что будет именно один поток? Найстройте сколько вам нужно. И не думайте о производительности, пока не настроете метрики и не зададите метрики, относительно которых будете определять необходимость оптимизаций
Это node.js - сколько тут может быть потоков именно выполнения js-кода если не 1?? Или я чего-то не знаю? " не думайте о производительности..." - да я и не думаю, просто было любопытно может ли монга то что я хочу =)
Aga
Возможно мы говорим о разных нодах, но NodeJs однопоточна)
Nick
Вас в роутер и несколько инстансов воркеров ноды не учили?
Nick
Та же мнооопоточка, только немногт ручная
Aga
Может ещё капусту рядом с компьютером своим поставишь, тогда будет капустная нода.
Max
Вас в роутер и несколько инстансов воркеров ноды не учили?
пока один инстанс и. один воркер) но это пока... но это не правильно таким путём решать эту проблему
Aga
ахахах, хочешь 4 потока, создай 4 ноды и будет многопоточность. Как же сука это логично
Aga
Пойду ребятам из ноды скажу, что оказывается нода многопоточна
Nick
Вполне логично от языка не приспособленного для серверной части
Max
Вас в роутер и несколько инстансов воркеров ноды не учили?
имхо - неверно. если эту проблему можно решить путём "магии" в коде, или тем более - БД, - то не стоит трогать инфраструтуру.
Nick
Нода допустима только на легоньких демомроектах или петпроджектах, запускаемых на дешманных впсках
Aga
Или ты от несения хуйни удовольствие получаешь?
Aga
Ты сам предложил решение проблемы однопоточности, но в тоже время заявляешь что это казуальная штучка
Aga
Это как быть веганом и каждый раз кушать говядину
Aga
Или как быть мусульманином и есть свинину
Aga
Ну ты понял короче, противоречиво
Nick
Не предлагал решение, а вмеголишь намекнул что не нужно мыслить одним потоком
Nick
Или как быть мусульманином и есть свинину
Если ты загоняешь себя в рамки, не значит что они сушествуют
Nick
имхо - неверно. если эту проблему можно решить путём "магии" в коде, или тем более - БД, - то не стоит трогать инфраструтуру.
Использовать магию, если ты не прохавал обычный путь чревато нестабильной или еще хуже непредсказуемой работой и диким усложнегием логики
Anonymous
Монго уже можно использовать на манер РСУБД?
Anonymous
что вы под этим понимаете?
Насколько плохо увлекаться связям
Nick
средне плохо, монга не любит связи, хоть сейчас и есть механизмы аналогичные джойну, но он удобен только когда свзяь одна, максимум две, и нет необходимости делать фильтры по сджойненным коллекциям
Nick
если у вас много связей - берите обычный sql, носкл не для этого
Max
Монго уже можно использовать на манер РСУБД?
можно, использую, но не стоит так делать наверное (зачем?).
Anonymous
Ну да
Anonymous
Иногда хочется странного
Max
Иногда хочется странного
я на проекте нагородил вьюшки которые агрегируют в себе несколько коллеций и сделал их плоскими на манер реляционок =) не скажу что это хорошо для перфоманса, но выглядит симпатично. да и удобно отдавать на фронт для разных табличек
Anonymous
Что то похожее на CQRS?
Max
Что то похожее на CQRS?
погуглил что это) да, немного схоже - просто так очень удобно делать фильтры/пагинацию с юайки по нескольких коллекциях сразу
Max
а почему вы выбрали монгу? не троллинга ради хочется понимать когда люди ее выбирают
нам пришёл уже частично сделаный проект - по сути - жирная полурабочая демка. да и заказчик упёрся - тип они уже юзали монгу и им было норм. я бы её не выбрал.. либо же выбрал как вспомагательную бд-шку: базовые данные в реляционке, а какие-то монструозные/денормализированые сущности уже в коллекции.
Aga
Я тебе привёл пример, а ты мне про мои рамки
Nick
??
это оффтоп уже, твой пример лишь показывает что ктото узко мыслит
Aga
Я тебе не IPhone XR, с рамками у меня все хорошо
Aga
это оффтоп уже, твой пример лишь показывает что ктото узко мыслит
Ух бля, ты аргументы приведи, а не мнение высказывай. Я тебе сверху все подробно расписал, а ты мне про узкомысненность
Max
походу стандартная ситуация для монги
что именно? что заказчик пришёл и захотел монгу?
Anonymous
Легаси
Max
Что то похожее на CQRS?
спасибо к стати) теперь я знаю что переизобрёл CQRS, и у меня не говоно-вьюшки а паттерн)
Nick
нода однопоточна, братан