
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
кастомные конвертеры

Alexandr
05.10.2018
12:24:25

Диоген
05.10.2018
12:24:51

Mikhail
05.10.2018
12:28:11

Диоген
05.10.2018
12:29:10

Vladimir
05.10.2018
12:39:23

Диоген
05.10.2018
12:40:34
Переопределить геттеры, геттеры чтобы null возвращать, если errorMessage есть и поставить
@JsonInclude(JsonInclude.Include.NON_NULL)
Сработает?
Проверю сейчас. Спасибо.

Vladimir
05.10.2018
12:55:59

Диоген
05.10.2018
12:57:49

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

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

Митко Соловец?
05.10.2018
13:07:30

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

Eanseen
05.10.2018
13:08:29

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

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
есть другие варианты кроме одной таблицы (я не разбираюсь в бд)?

Dmitry
05.10.2018
13:48:31

Ivan
05.10.2018
13:49:13
все 10 млрд?

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

Google

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

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

Dmitry
05.10.2018
13:49:46

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

Sergey
05.10.2018
13:49:58

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 млрд записей