Vasiliy
я через find делаю, фильтер вроде через него не робит, не?
Yurii
я через find делаю, фильтер вроде через него не робит, не?
не, надо переходить на aggregation framework, или уже после выборки в коде фильтровать
Vasiliy
С агрегацией чёт не срослось, фильтровать в коде буду
Constantin
https://docs.mongodb.com/manual/changeStreams/
+ Спасибо, попробую, что-то пропустил
Constantin
https://docs.mongodb.com/manual/changeStreams/
Это лучше чем транзакции, почему-то пропустил когда чендж логи с 3.4 на 3.6 читал =)
yopp
ну вообще, всё тоже самое можно было сделать через оплог
yopp
ещё до change stream
yopp
но надо было руками некотрые вещи делать
Andrii
Ребята есть тут те, кто-то отпет на MacBook Pro 2017 ? Хочу узнать некоторые тонкости этой модели
Pavlo
Здравствуйте, кто может подсказать как снести на маке файлы studio 3t с инфой о триале, чтобы начисто поставить и дальше бесплатно пользоваться? Пробовал чистить все сопутствующие файлы через клинмаймак – все равно помнит меня после переустановки
Владимир Воландемортович
а на мак денег хватило...
Так может тоже спёр 🤔
Anonymous
не думаю, что можно так вот спереть это, иначе бы писал хак вместо мак) а вообще цена вопроса 600 бачей
Anonymous
мы не мелочимся)
Владимир Воландемортович
Ну так то да, если тырить то версию за 500 баксов 😬
Anonymous
забавный дядька в общем 😂
Gleb
а на мак денег хватило...
на работе выдали прост и все
Anonymous
на работе выдали прост и все
щедро или не в личное пользование?
Владимир Воландемортович
на работе выдали прост и все
На рабочий пиратский софт? 😳
Gleb
щедро или не в личное пользование?
ну пока работаешь хоть домой уноси - обычная же практика
Gleb
На рабочий пиратский софт? 😳
и не такую дичь видели
Anonymous
ну и инструмент может купят, раз надо
Pavlo
Та бля, кулю уже если не получится
Slava
Slava
я периодически кликаю на non-commercial use и все
Pavlo
я периодически кликаю на non-commercial use и все
Раза 3-4 так и было, а теперь не пускает
Anonymous
Владимир Воландемортович
чует коммерческий мотив
У меня так тимвьювер отвалился 😕
Anonymous
Подскажите такую штуку. Монгус получает в поле Date строки 2018-02-02, которые он превращает в какой-то длинный унифицированный формат. У него нет настройки форматирования даты?
AstraSerg
Подскажите такую штуку. Монгус получает в поле Date строки 2018-02-02, которые он превращает в какой-то длинный унифицированный формат. У него нет настройки форматирования даты?
Доброе утро. В базе даты хранятся в специальном формате. Если вам нужно изменить отображение даты, делайте это в приложении. Это не задача БД.
Constantin
Подскажите такую штуку. Монгус получает в поле Date строки 2018-02-02, которые он превращает в какой-то длинный унифицированный формат. У него нет настройки форматирования даты?
Нет, но вы можете прогонять их через moment перед тем как отдать в mongoose. У moment есть метод .from, чтобы можно было парсить даты в любых форматах, если проблема в том, как он парсит дату. Если дату парсит правильно, но вам не нравится как она получается на выходе, то тут вы ничего не сделаете, так как дата и должна храниться в специальном формате, а не строкой. Это нужно для того, чтобы можно было делать вычисления с датами, менять часовые пояса и т. п.
Vasiliy
ребят, я же правильно понимаю что $convert я только в агрегации могу юзать, а с find такое не прокатит?
Vasiliy
Это то понятно) думал может аналог какой-то есть для файнда
Vasiliy
Так, ещё такой совет, больше с точки зрения архитектуры и того как в носкл базах
Yurii
Это то понятно) думал может аналог какой-то есть для файнда
да не бойся ты так аггрегации, это легко)
Vasiliy
У меня есть репорты которые раз в 10 сек приходят, мне надо на дашборде показывать актуальное состояние из последнего репорта, я правильно понимаю что в понятиях нереляционых баз мне лучше сделать ещё одну коллекцию где складировать последние репорты?
Vasiliy
Вот про индексы я тут пару дней назад спрашивал и из за них агрегация по скорости проседает
Vasiliy
То есть с сортом по не индексу все ок, по индексу начинает тормозить, будто матч фильтрацию не делает
Vasiliy
да, но там особо полезного не было ничего(для меня)
Vasiliy
ну в случае с индексовым полем оно в выводе в сорте появлялось, а не индексовое - нет
Vasiliy
https://pastebin.com/a9WyfPJZ как-то так, я так понимаю что сортировка по индексу идёт от минимального ключа к максу, как пофиксить это?
Vasiliy
есть
Vasiliy
вот именно что как только делаю sort с индексовым полем оно на rig_session_id не обращает внимание, если делаю сорт на другое поле то оно как-то так
Vasiliy
https://pastebin.com/FDP4AXQu
Vasiliy
т.е. принимает во внимание границы которые в match заданы
AstraSerg
@vasivas > ...как пофиксить это? в индексе вы можете задать порядок сортировки при создании. Это 1 или -1. Он должен соответствовать запросу. Но, на сколько я помню, мы с вами пришли к выводу, что индекс правиьлный, так как find-е работает, а в агрегации - нет.
Vasiliy
ну порядок там роли не играет
Vasiliy
одинаково долго
Vasiliy
я и с тем и с другим пробовал
Vasiliy
пользы от этого нет
AstraSerg
а, у вас там ещё размер одного из полей был большой
Vasiliy
видно же что когда инжекс для сортировки не используется то оно правильно задаёт границы "indexBounds" : { "rig_session_id" : [ "[2234.0, 2234.0]", "[2255.0, 2255.0]" ] } а если индекс участвует в сортировке то вот так "indexBounds" : { "_id" : [ "[MinKey, MaxKey]" ] }
AstraSerg
так в первом копипасте всего 2 документа уже на этот стейдж приходит
Vasiliy
именно, а запрос отличается просто наличием индекса на created_at {'$sort': {created_at: 1}}
AstraSerg
именно, а запрос отличается просто наличием индекса на created_at {'$sort': {created_at: 1}}
Сложно понять что-то не имея сведений о коллекции. Можете привести пример вашего документа попортив секретные данные в нём?
Vasiliy
что-то типа такого https://pastebin.com/aCdMq7fK
Vasiliy
вот запрос db.reports.aggregate([{ $match : { rig_session_id : { $in : [2234, 2255 ] } } },{'$sort': {created_at: 1}}, { $group : { _id : '$rig_session_id', hashrate: { $last : '$$ROOT' } } }])
AstraSerg
что-то типа такого https://pastebin.com/aCdMq7fK
Так, а где закоженные в base64 данные?
Vasiliy
"miner_log": "==", "os_log": "", я до сих пор не понимаю при чем они тут, потому что explain явно говорит что в случае с индексом indexBound берет диапазон от minKey до maxKey, а без него нормально работает с rig_session_id
AstraSerg
что-то типа такого https://pastebin.com/aCdMq7fK
created_at это ISODate или строка?
Vasiliy
строка
Vasiliy
"created_at": "2018-08-03T18:02:04.508732Z",
AstraSerg
Ок, буду у компа через час, попробую на стенде
Vasiliy
вообще
Vasiliy
если в sort добавить rig_session_id(который в match участвует) то время существенно сокращается
Vasiliy
могу скинуть executionStatus
Vasiliy
походу понял
Vasiliy
надо обязательно в match указывать параметры для поля которое будет в sort если оно индексовое
Vasiliy
иначе оно границы сортировки по индексовому полю берет от мин до макс, а если в матч условие есть то границы из этого поля