
Ilya
12.04.2018
08:54:41

yopp
12.04.2018
08:54:54
Но вам не нужна агрегация

Ilya
12.04.2018
08:55:40
=) а как файндом обойтись?

Google

yopp
12.04.2018
08:55:42
Вам дешевле на клиенте отбросить поддокументы

Ilya
12.04.2018
08:55:49
ааа ну вооот
просто там поддокументов тысячи

Nick
12.04.2018
08:56:23

Ilya
12.04.2018
08:56:41
да там отфильтруется 99%
в плане откинутся
а 1 % будет нужно вывести
поэтому и не хотелось тащить их все
в итоге пока остановились на хранимке которая items фильтрует после фаинда

Nick
12.04.2018
08:57:35

Peter
12.04.2018
08:57:42
Время исполнение в explain в аггрегатке нету, даже в 3.6 немогу найти. И как я понимаю нету способа посмотреть сколько реально исполняется агрегатка?

Ilya
12.04.2018
08:58:06

Nick
12.04.2018
08:58:41
тогда может имеет смысл сравнит ьчто по скорости будет лучше AF или на клиенте

Google

Ilya
12.04.2018
09:00:18
в общем просто я думал что вдруг я не знаю какой то простой фишки а в монге она есть и мне похдходит - похоже что все норм, будем тестировать дальше)

yopp
12.04.2018
09:01:15
arrayFilter завезли только для write операций
https://docs.mongodb.com/manual/reference/operator/update/positional-filtered/#up._S_[<identifier>]
Гены в своём репертуаре. ;) используй db.coll.explain(“executionStats”).aggregate(...) а не db.coll.aggregate([], {explain:true})

Ilya
12.04.2018
10:14:03
то есть именно в 3.6 должно работать?

yopp
12.04.2018
10:14:34
3.2+
https://docs.mongodb.com/manual/reference/operator/aggregation/filter/

Peter
12.04.2018
10:17:44
”executionStats" : {
"executionSuccess" : true,
"nReturned" : 1,
"executionTimeMillis" : 0,
"totalKeysExamined" : 0,
"totalDocsExamined" : 1,
"executionStages" : {
"stage" : "COLLSCAN",
"nReturned" : 1,
"executionTimeMillisEstimate" : 0,
"works" : 3,
"advanced" : 1,
"needTime" : 1,
"needYield" : 0,
"saveState" : 1,
"restoreState" : 1,
"isEOF" : 1,
"invalidates" : 0,
"direction" : "forward",
"docsExamined" : 1
}
}
executionTimeMills 0 ? это типо меньше милисекунды?

Ilya
12.04.2018
10:21:21

yopp
12.04.2018
10:22:31
Тогда трансформироваться будут только документы из «текущей страницы»
По ссылке твой пример в общем-то

Ilya
12.04.2018
10:23:13
да вот в том то и проблема что как только я добавляю блок skip - то меня уже время выполнения не устраивает

Peter
12.04.2018
10:23:24

Ilya
12.04.2018
10:23:28
=)

yopp
12.04.2018
10:23:33

Google

yopp
12.04.2018
10:23:51
Покажи пайплайн
Очень желательно в gist.github.com

Yurii
12.04.2018
10:35:07

Ilya
12.04.2018
10:35:13

yopp
12.04.2018
10:38:18
db.getCollection('scores').aggregate([
{$match: {"grades.score": {$gte: 10}}},
{$skip: 21000},
{$limit: 10},
{
$project: {
grades: {
$filter: {
input: "$grades",
as: "item",
cond: { $gte: [ "$$item.score", 10 ] }
}
}
}
}
])
"executionTimeMillis" : 39,
без индексов
это датасет с оценками ресторанов
scores.count()
25360

Ilya
12.04.2018
11:20:49
во первых спасибо

Evgeny
12.04.2018
11:21:23
Это пахнет началом цикла статей где-нибудь)

Ilya
12.04.2018
11:21:39
во вторых очень здорово про addFields я чет не догадался

Ilya
12.04.2018
11:21:49
с индексами да это я накосячил
вроде сейчас все работает как надо)

yopp
12.04.2018
11:24:21
Тьфу,.
Короче, я тям уже три раза ошибся
Короче, если не делать условия по borough, то в этом случае монга для skip/limit будет делать FETCH всех документов которые попали в условие
Хм. Хотя оно и так делает FETCH, даже если и сортировка есть и в условии нет вложенных документов
Пойду ещё кофеином закинусь
https://docs.mongodb.com/manual/reference/method/cursor.skip/#pagination-example

Google

yopp
12.04.2018
11:40:33
Но вообще такие оптимизации нужны если будет очень больно на очень больших объёмах

Admin
ERROR: S client not available

yopp
12.04.2018
12:12:38
Там аккурат MDBLocal в мюнхене, где Ася Камски (из монги, ведёт http://www.kamsky.org/stupid-tricks-with-mongodb и http://www.askasya.com) сейчас рассказывает про AF. Жаль трансляции нет :(
В недрах mongodb.com есть раздел со старыми кейноутами. Например https://www.mongodb.com/presentations/diagnostics-and-debugging-3-0-the-return-of-sherlock-holmes. Можно даже сказать что благодоря её выступленям, меня потянуло в глубокое копание в монге.
Она очень клёвая!

keystr0ke
12.04.2018
13:12:13

yopp
12.04.2018
14:00:07
О. Слайды есть https://github.com/asya999/mdbw17

Анатолий
12.04.2018
15:19:03
привет. вопрос - как такое может быть - удалил документы из коллекции, но скрипт из крона может их находить?
где то надо кэш почистить?

yopp
12.04.2018
15:21:14
Реплика сет или standalone?


Dimanius851
12.04.2018
15:38:25
2018-04-12T15:35:59.293+0000 E QUERY [conn5] Plan executor error during find command: FAILURE, stats: { stage: "PROJECTION", nReturned: 0, executionTimeMillisEstimate: 20, works: 4828, advanced: 0, needTime: 4827, needYield: 0, saveState: 37, restoreState: 37, isEOF: 0, invalidates: 0, transformBy: { created: 1, description: 1, img: 1, image: 1, name: 1, owner: 1, updated: 1, users: 1, views: 1, likes: 1, reference: 1 }, inputStage: { stage: "SORT", nReturned: 0, executionTimeMillisEstimate: 20, works: 4828, advanced: 0, needTime: 4827, needYield: 0, saveState: 37, restoreState: 37, isEOF: 0, invalidates: 0, sortPattern: { views: -1 }, memUsage: 33568596, memLimit: 33554432, inputStage: { stage: "SORT_KEY_GENERATOR", nReturned: 0, executionTimeMillisEstimate: 10, works: 4827, advanced: 0, needTime: 2, needYield: 0, saveState: 37, restoreState: 37, isEOF: 0, invalidates: 0, inputStage: { stage: "COLLSCAN", filter: { $and: [] }, nReturned: 4825, executionTimeMillisEstimate: 0, works: 4826, advanced: 4825, needTime: 1, needYield: 0, saveState: 37, restoreState: 37, isEOF: 0, invalidates: 0, direction: "forward", docsExamined: 4825 } } } }


yopp
12.04.2018
15:43:05
2018-04-12T15:35:59.293+0000 E QUERY [conn5] Plan executor error during find command: FAILURE, stats: { stage: "PROJECTION", nReturned: 0, executionTimeMillisEstimate: 20, works: 4828, advanced: 0, needTime: 4827, needYield: 0, saveState: 37, restoreState: 37, isEOF: 0, invalidates: 0, transformBy: { created: 1, description: 1, img: 1, image: 1, name: 1, owner: 1, updated: 1, users: 1, views: 1, likes: 1, reference: 1 }, inputStage: { stage: "SORT", nReturned: 0, executionTimeMillisEstimate: 20, works: 4828, advanced: 0, needTime: 4827, needYield: 0, saveState: 37, restoreState: 37, isEOF: 0, invalidates: 0, sortPattern: { views: -1 }, memUsage: 33568596, memLimit: 33554432, inputStage: { stage: "SORT_KEY_GENERATOR", nReturned: 0, executionTimeMillisEstimate: 10, works: 4827, advanced: 0, needTime: 2, needYield: 0, saveState: 37, restoreState: 37, isEOF: 0, invalidates: 0, inputStage: { stage: "COLLSCAN", filter: { $and: [] }, nReturned: 4825, executionTimeMillisEstimate: 0, works: 4826, advanced: 4825, needTime: 1, needYield: 0, saveState: 37, restoreState: 37, isEOF: 0, invalidates: 0, direction: "forward", docsExamined: 4825 } } } }
memUsage: 33568596, memLimit: 33554432
памяти для сортировки не хватило


Dimanius851
12.04.2018
15:45:24
спасибо

yopp
13.04.2018
08:58:53
Если вы из РФ, рекомендую заранее озаботится вариантом обхода блокировки.
❗️Суд постановил заблокировать телеграм.

Artem
13.04.2018
09:02:57
да затрахаюццо блокировать))))

Rocket
13.04.2018
09:04:23

Artur
13.04.2018
09:05:11
попадали все прокси уже

yopp
13.04.2018
09:05:25
И @socks5_bot

Ivan
13.04.2018
09:05:47
а этот живой @TgProxyBot

Google

Mikhail
13.04.2018
09:05:51

yopp
13.04.2018
09:08:16
Насколько я понимаю сейчас боты упираются в лимиты, плюс везде наплыв из-за публикаций в сми

Rocket
13.04.2018
09:14:36
Одна машина не выдерживает.

User ?
13.04.2018
09:17:54
можно ссылку на мускул чатик?

Mikhail
13.04.2018
09:18:20

User ?
13.04.2018
09:20:49
thx

Oleg ?
13.04.2018
09:46:14
Ребят, привет. Подскажите а юзает кто монгу в big data ? Поделитесь впечатлениями

Slava
13.04.2018
09:46:45
а что вы подразумеваете под бигдата? ну т.е какие объемы?

Oleg ?
13.04.2018
09:47:48
больше 1 петабайта

Nick
13.04.2018
09:50:25
для хранения норм, но галвнео планирвоать доабвление новых шардов примерно за полгода