@jvmchat

Страница 2855 из 2890
Filipp
05.10.2018
11:59:57
https://www.youtube.com/watch?v=IwJ-SCfXoAU

Кроме рассказа о CF, там примеры как его “правильно готовить”. Можешь скинуть в чатик пример кода, где по твоему выглядит убого/нечитабельно. Мб там можно сделать иначе

Alexandr
05.10.2018
12:11:26
читабельность как показывает практика в большинстве случаев вкусовщина, это раз. два - красиво и просто - не значит что правильно и хорошо, ну и наоборот несовсем красивый код != плохой

Диоген
05.10.2018
12:19:00
у меня тут сломаны типы какой самый простой способ условной сериализации полей в джексон? Допустим у меня есть объект DTO{ ComplexObject result; String errorMessage; } Мне надо сделать чет типа, если у меня errorMessage != null, то это сериализовалось в "result" : "Message", а иначе в "result: {...}

Google
Митко Соловец?
05.10.2018
12:19:55
кастомные конвертеры

Диоген
05.10.2018
12:24:51
не стоит так делать :)
Так а шо делать, "все согласовано" уже, ну

Mikhail
05.10.2018
12:28:11
Так а шо делать, "все согласовано" уже, ну
Кто-то согласовал так себе вариант, теперь костыли будут и на клиенте, и на сервере, красота :)

Диоген
05.10.2018
12:29:10
Диоген
05.10.2018
12:40:34
Проще всего, наверное, будет через @JsonValue
Да, наверное, так и придется делать.

Переопределить геттеры, геттеры чтобы null возвращать, если errorMessage есть и поставить @JsonInclude(JsonInclude.Include.NON_NULL) Сработает?

Проверю сейчас. Спасибо.

Vladimir
05.10.2018
12:55:59
Переопределить геттеры, геттеры чтобы null возвращать, если errorMessage есть и поставить @JsonInclude(JsonInclude.Include.NON_NULL) Сработает?
Если надо только сериализовывать, достаточно добавить метод с @JsonValue и из него возвращать то, что нужно. Как я понял, это либо строка, либо вложенный объект. Т.е. как-то так: @JsonValue Object serialize() { return (errorMessage == null) ? result : errorMessage; }

Eanseen
05.10.2018
13:03:16
всем привет) подскажите, вот есть у меня агрегация для монги

http://take.ms/uFGWy

Google
Eanseen
05.10.2018
13:03:27
как это переписать под спринг ?

пол дня поисков в гугле и толку ровно 0 (

Nick
05.10.2018
13:05:25
http://take.ms/uFGWy
а что сложного? все это в json док и его в aggregate mongo драйверу

Eanseen
05.10.2018
13:06:52
а метод у mongoTemplate не подскажешь ?)

Митко Соловец?
05.10.2018
13:07:30
а метод у mongoTemplate не подскажешь ?)
https://www.baeldung.com/spring-data-mongodb-projections-aggregations

Nick
05.10.2018
13:08:08
с mongoTemplate еще проще

Eanseen
05.10.2018
13:08:29
https://www.baeldung.com/spring-data-mongodb-projections-aggregations
видел, не помогло) гуглить я умею)

Nick
05.10.2018
13:08:51
а что именно тогда не помогло?

какието ошибки или что?

Eanseen
05.10.2018
13:11:38
я там не нашел, как сделать агрегацию по моему жсону

посчитать элементы в группе - легко, а чуть сложнее - все примеров нет)

Nick
05.10.2018
13:12:23
шта? там указано как матч, груп и сорт сделать в примере

какой именно операции не нашли?

Eanseen
05.10.2018
13:13:10
окей)) как мне вот такую группу сделать ? "$group" : { "_id" : { "$dateToString" : { "format" : "%Y-%m-%d", "date" : "$createdDate" } }, "tickets" : { "$sum" : "$tickets.totalCount" } }

за готовое решение готов даже заплатить)

Владислав
05.10.2018
13:14:45
Всем привет Мне нужно проанализировать сетевую активность одного приложения у меня на смартфоне можно ли как-нибудь к нему подключиться через android studio debugger или нужны какие-нибудь другие средства? в частности нужно посмотреть что приложение отправляет и принимает как по сокетам так и по http/https желательно до шифрования(если это https)

Nick
05.10.2018
13:20:02
окей)) как мне вот такую группу сделать ? "$group" : { "_id" : { "$dateToString" : { "format" : "%Y-%m-%d", "date" : "$createdDate" } }, "tickets" : { "$sum" : "$tickets.totalCount" } }
понял проблему, вам всеголишь нужен отдельный этап project перед груп в этом случае

Eanseen
05.10.2018
13:20:22
так

Nick
05.10.2018
13:20:22
и в нем уже подготовить поле, которое потом будет _id

Google
Eanseen
05.10.2018
13:21:00
val date = DateOperators.dateOf("createdDate").toString("%Y-%m-%d") val agg = newAggregation( project("_id").and(date).`as`("date"), group("date", "tickets").first(date).`as`("date").sum("tickets.totalCount").`as`("count") )

Nick
05.10.2018
13:21:20
ой бля котлин походу

или вообще скала?

Eanseen
05.10.2018
13:21:41
котлин то котлином)) но не в этом же суть

Nick
05.10.2018
13:22:13
вцелом да, только еще totalCount нужно протаскивать

его через project вроде не протащит

Eanseen
05.10.2018
13:23:02
и какие есть варианты ?)

Nick
05.10.2018
13:23:25
всмысле варианты?

Eanseen
05.10.2018
13:24:03
java.lang.IllegalArgumentException: Invalid reference 'tickets'!

Nick
05.10.2018
13:26:14
так я и говрю что не протащит "tickets.totalCount" через прожект и нужно это явно делать

ProjectionOperation proj = Aggregation.project() .andExpression("createdDate").dateAsFormattedString("%Y-%m-%d").as("createdDate") .andExpression("tickets.totalCount").as("totalCount");

по идее чтото такое

Eanseen
05.10.2018
13:28:47
Test(date=2018-09-02, count=1), Test(date=2018-09-02, count=1), Test(date=2018-09-02, count=4)

а должно групировать в одну (

Nick
05.10.2018
13:29:24
так у вас там в group два поля

Eanseen
05.10.2018
13:30:08
ну да)) И выдает оно список 17 января - count 440 18 января - count 600

и так далее

Nick
05.10.2018
13:32:36
тогда я вас не понимаю. как сейчас выглядит агрегация и что не так в выборке

Eanseen
05.10.2018
13:33:35
сейчас выглядит так date=2018-09-02, count=1 date=2018-09-02, count=2 date=2018-09-02, count=3 date=2018-09-01, count=1 date=2018-09-01, count=1 date=2018-09-01, count=1 а должно быть date=2018-09-02, count=6 date=2018-09-01, count=3

Nick
05.10.2018
13:33:55
как сйечас агрегация выглядит?

Google
Nick
05.10.2018
13:35:02
если в ней все еще group("date", "tickets"), то оставьте только date

для монги group("date", "tickets") это будет выглядеть как $group:{ _id:{ date:$date tickets:$tickets }}

Eanseen
05.10.2018
13:36:19
http://take.ms/tRc83

Nick
05.10.2018
13:37:31
http://take.ms/tRc83
в group указывается то по чему группирвоать а не просто все поля, поэтому нужно оставить только date

Eanseen
05.10.2018
13:38:51
окей указываю я строку group("date").sum("count").`as`("count"), в итоге он мне отдает колво только без даты

Admin
ERROR: S client not available

Nick
05.10.2018
13:39:33
потому что вы кудато дели first("date")as("date") котоырй был сначала

Eanseen
05.10.2018
13:39:39
на выходе должно получится нечто такое

http://take.ms/kMq6w

Оо

заработало

http://take.ms/jPi99

спасибо)

Nick
05.10.2018
13:40:51
отлично

а теперь собсна зачем я сюда зашел) народ какие есть варианты для хранения примерно такой связки M,K,N,B,S M-N-K отдельные числовые поля, которые образуют уникальный ключ. B - некий флаг S - некоторое не длинное сообщение количество запсей > 10млрд и будет расти и самое главное нужен доступ только по M, M-K, M-K-N

Name
05.10.2018
13:48:24
есть другие варианты кроме одной таблицы (я не разбираюсь в бд)?

Nick
05.10.2018
13:49:27
предполагается что БД очивидный вариант и его я уже рассмотрел, хочется както попроще

Google
Nick
05.10.2018
13:49:35
нет, холодное хранение

Sergey
05.10.2018
13:49:36
Скорее всего агрегация будет

Nick
05.10.2018
13:49:54
ну и надеюсь редко разбор конфликтных ситуаций

Sergey
05.10.2018
13:49:58
куда уж проще?
В текстовом файле :D

Ivan
05.10.2018
13:50:13
и индексы в кеше в оперативке

бинго

Dmitry
05.10.2018
13:50:26
на 10млрд записей?))

Ivan
05.10.2018
13:50:31
вай нот

ну можно разбить на партишены сразу

rocksdb можно заюзать кстати

Nick
05.10.2018
13:51:07
сейчас такое на монге, индексы по такому ключу весят 120гб

Dmitry
05.10.2018
13:51:16
Но это будет не проще, чем взять субд, которая сама все это сделает :)

Ivan
05.10.2018
13:52:34
и че там какая субд тебе это сделает?

на вскидку если

10 млрд записей

Страница 2855 из 2890