Yurii
Vasiliy
я через find делаю, фильтер вроде через него не робит, не?
Vasiliy
С агрегацией чёт не срослось, фильтровать в коде буду
yopp
Constantin
yopp
ну вообще, всё тоже самое можно было сделать через оплог
yopp
ещё до change stream
yopp
но надо было руками некотрые вещи делать
Andrii
Ребята есть тут те, кто-то отпет на MacBook Pro 2017 ? Хочу узнать некоторые тонкости этой модели
Pavlo
Здравствуйте, кто может подсказать как снести на маке файлы studio 3t с инфой о триале, чтобы начисто поставить и дальше бесплатно пользоваться?
Пробовал чистить все сопутствующие файлы через клинмаймак – все равно помнит меня после переустановки
Anonymous
Anonymous
не думаю, что можно так вот спереть это, иначе бы писал хак вместо мак)
а вообще цена вопроса 600 бачей
Владимир Воландемортович
Anonymous
мы не мелочимся)
Владимир Воландемортович
Ну так то да, если тырить то версию за 500 баксов 😬
Anonymous
забавный дядька в общем 😂
Gleb
Anonymous
ну и инструмент может купят, раз надо
Pavlo
Та бля, кулю уже если не получится
Slava
Slava
Slava
я периодически кликаю на non-commercial use и все
Pavlo
Anonymous
Anonymous
Подскажите такую штуку. Монгус получает в поле Date строки 2018-02-02, которые он превращает в какой-то длинный унифицированный формат. У него нет настройки форматирования даты?
AstraSerg
Constantin
Подскажите такую штуку. Монгус получает в поле Date строки 2018-02-02, которые он превращает в какой-то длинный унифицированный формат. У него нет настройки форматирования даты?
Нет, но вы можете прогонять их через moment перед тем как отдать в mongoose. У moment есть метод .from, чтобы можно было парсить даты в любых форматах, если проблема в том, как он парсит дату.
Если дату парсит правильно, но вам не нравится как она получается на выходе, то тут вы ничего не сделаете, так как дата и должна храниться в специальном формате, а не строкой. Это нужно для того, чтобы можно было делать вычисления с датами, менять часовые пояса и т. п.
Vasiliy
ребят, я же правильно понимаю что $convert я только в агрегации могу юзать, а с find такое не прокатит?
Yurii
Vasiliy
Это то понятно) думал может аналог какой-то есть для файнда
Vasiliy
Так, ещё такой совет, больше с точки зрения архитектуры и того как в носкл базах
Yurii
Vasiliy
У меня есть репорты которые раз в 10 сек приходят, мне надо на дашборде показывать актуальное состояние из последнего репорта, я правильно понимаю что в понятиях нереляционых баз мне лучше сделать ещё одну коллекцию где складировать последние репорты?
AstraSerg
Vasiliy
Вот про индексы я тут пару дней назад спрашивал и из за них агрегация по скорости проседает
Yurii
Vasiliy
То есть с сортом по не индексу все ок, по индексу начинает тормозить, будто матч фильтрацию не делает
Yurii
Vasiliy
да, но там особо полезного не было ничего(для меня)
Vasiliy
ну в случае с индексовым полем оно в выводе в сорте появлялось, а не индексовое - нет
Vasiliy
https://pastebin.com/a9WyfPJZ как-то так, я так понимаю что сортировка по индексу идёт от минимального ключа к максу, как пофиксить это?
Yurii
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}}
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
Vasiliy
"miner_log": "==",
"os_log": "",
я до сих пор не понимаю при чем они тут, потому что explain явно говорит что в случае с индексом indexBound берет диапазон от minKey до maxKey, а без него нормально работает с rig_session_id
AstraSerg
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
иначе оно границы сортировки по индексовому полю берет от мин до макс, а если в матч условие есть то границы из этого поля
Vasiliy
AstraSerg