@MongoDBRussian

Страница 253 из 342
yopp
01.06.2018
13:12:22
Ну тогда в условие запроса просто добавьте условие ($fieldA - $fieldB) gte X

Maksim
01.06.2018
13:13:38
хм

yopp
01.06.2018
13:13:39
До тех пор пока у вас duration будет константой в условии, вы можете обходится условием.

Если у вас duration будет в документе, надо будет через aggregation framework уже

Google
yopp
01.06.2018
13:14:33
Кажется. Возможно я с другим кейсом путаю ?

Maksim
01.06.2018
13:15:00
find({"timestamp": {"$gte": ISODate("2018-05-31T00:00:004Z"),"$lt": ISODate("2018-06-02T00:00:004Z")}}) достаточно сюда добавить получается ?

еще условие

yopp
01.06.2018
13:16:03
У вас получается два условия. С логической операцией И (и дата в диапазоне и длительность события)

Но в монге условия по нескольким полям сразу объединяются через И

Maksim
01.06.2018
13:23:56
оО попробую изучить вопрос

постиг магию агреации в итоге. осталось постичь $gte

db.tg.aggregate( [ {$match: {"timestamp": {"$gte": ISODate("2018-05-31T00:00:004Z"), "$lt": ISODate("2018-06-02T00:00:004Z")}}}, {$project: {duration: {$divide : [{$subtract: ["$clear_timestamp","$timestamp"]}, 1000]}}}])

запрос отработал

как теперь фильтрануть еще по duration )

Bandikoot
01.06.2018
14:37:30
как теперь фильтрануть еще по duration )
добавить ещё один блок match в пайплайн аггрегации

Google
Bandikoot
01.06.2018
14:42:52
с точки зрения синтаксиса, aggregate принимает на вход массив

у вас в массиве 2 элемента сейчас: {$match : ... }, {$project : ...} вам нужно: {$match : ... }, {$project : ...}, {$match : ... } aggregate представляет собой условный pipeline, как в unix: выхлоп одного блока (отобранные или модифицированные документы) передаются на вход следующего

Maksim
01.06.2018
14:49:29
но такая конструкция сильо замедлит обращение в базе ?

Bandikoot
01.06.2018
14:51:46
медленно или быстро — зависит от ваших требований. попробуйте выполнить и решите для себя, устраивает ли скорость выполнения и будет ли изменяться в перспективе

Maksim
01.06.2018
15:01:12
понятно

я думал можно в project использовать $gte

спасибо большое

познал мастрество агреации

db.tg.aggregate( [ {$match: {"timestamp": {"$gte": ISODate("2018-05-31T00:00:004Z"), "$lt": ISODate("2018-06-02T00:00:004Z")}}}, {$project: {duration: {$divide: [{$subtract: ["$clear_timestamp", "$timestamp"]}, 1000]}}}, {$match: {"duration": {"$gte": 300}}} ] )

вот такая загагулина вышла

только вот ньюансы вышел %(

при таком запросе мне возвращается {u'duration': 540.0, u'_id': ObjectId('5b11470398601c0f79bde558')}

а хотелось бы весь вывод %( что-то пошло не так

Bandikoot
01.06.2018
15:28:18
$project, собственно, проецирует только указанные поля в документах. обычно им отсекают ненужные

Maksim
01.06.2018
15:29:11
хм

Bandikoot
01.06.2018
15:30:54
условно, если у вас есть документ из 100500 полей, а вам нужны только date и time, например, то { $project : { _id : 0 date : 1, time : 1 } } прокинет на следующую стадию только эти 2, а все другие как бы уберёт из документов при выводе (сами записи не изменятся, конечно же). _id по умолчанию выводится, его можно убрать явным указанием

Maksim
01.06.2018
15:35:41
Понятно. Как раз мне обрезать не надо было, мне нужно было отфильтровать

замените $project на $addField
получается надо все опять перелопачивать под addField

не углядел что s на конце нет )

Google
Max
01.06.2018
19:13:40
там ссылка на ютубчик

Алексей
01.06.2018
19:15:37
а. в мыло приходит. интересно. не было такого вроде ранее

yopp
02.06.2018
11:19:03
Прямая ссылка на воскресный стрим: https://www.youtube.com/watch?v=WNLzoNQf8dA

Stable: 3.6.5 (May 25, 2018), Bugfix: 3.4.15 (May 16, 2018), Upcoming: 4.0.0-rc1 (May 31, 2018) MongoDB quick overview/production notes: https://www.percona.com/live/e17/sites/default/files/slides/Running%20MongoDB%20in%20Production%20-%20FileId%20-%20115299.pdf 4.0.0-rc1: https://groups.google.com/forum/m/#!topic/mongodb-user/8S4IPhjPZyA 3.6.5: https://docs.mongodb.com/manual/release-notes/3.6/#may-29-2018 3.4.15: https://docs.mongodb.com/manual/release-notes/3.4/#may-16-2018 3.2.20: https://docs.mongodb.com/manual/release-notes/3.2/#may-10-2018 (End of life: September 2018) 3.0.x: Support ended February 2018

Дорогой чятик, в воскресенье, 3 июня, с 19:00 до 22:00 (Мск) Артём @SvPupok делает тестовый стрим. Будем говорить о репликации и шардировании. public poll Да, хочу смотреть – 47 ??????? 92% Нет, мне неинтересно – 2 ▫️ 4% Нет, мне неудобно – 2 ▫️ 4% ? 51 people voted so far.

Для тех кто пропустил. Ссылка на стрим: https://www.youtube.com/watch?v=WNLzoNQf8dA. За одно подписывайтесь на канал, это не последнее событие!

Dan
02.06.2018
18:20:59
Вроде на почту пришла ссылка тоже

yopp
03.06.2018
15:01:58
Привет! Стрим про репликацию и шардинг начинается через час. Подключайтесь, подписывайтесь на канал: https://www.youtube.com/watch?v=WNLzoNQf8dA ⚡️

Viktor
03.06.2018
15:59:03
@dd_bb запинишь ссылку с трансляцией в чате? с уведомлением :)

из 40 записавшихся явилось меньше четверти

yopp
03.06.2018
15:59:50
Не, уведомление это слишком жестоко :)

Но Артём уже онлайн, скоро начнём: https://www.youtube.com/watch?v=WNLzoNQf8dA

Max
03.06.2018
16:16:05
из 40 записавшихся явилось меньше четверти
это отличный результат, я считаю :)

Bandikoot
03.06.2018
16:16:27
ну одно дело в опросник тыкать

и другое вечером воскресенья не забухать, а посмотреть полезное

Google
yopp
03.06.2018
17:29:40
Самое время задавать Артёму вопросы про шардирование и репликацию! https://www.youtube.com/watch?v=WNLzoNQf8dA

Алишер
03.06.2018
17:39:54
Вопрос: Лог Mongos постоянно выдает: I NETWORK [thread2] connection refused because too many open connections: 819 Соответственно, неудается к нему подконнектится, приходится перезапускать, но он все равно вскоре забивается. В конфиге Mongos.cfg не проставлено значения для net.maxIncomingConnections. Следовательно должно использоваться дефаултное значение 65536.

Artem
03.06.2018
18:04:29
Алишер, можно посмотреть в сторону максимального количества коннектов, открытых к конкретному mongod

Алишер
03.06.2018
18:04:57
Подробнее пожалуйста

Artem
03.06.2018
18:05:09
мин

смотри, монгос в качестве настройки использует количество входящих коннектов. но, кроме всего прочего он взаимодействует с обьектами всего кластера, т.е. поднимает коннекты ко всем демонам mongod. Какждый mongod имеет лимит подключений, который выставляется например в моем случае в systemd скрипте, который стартует сервис. LimitNOFILE LimitNPROC. посмотри в сторону увеличения этих лимитов

Алексей
03.06.2018
18:37:42
@SvPupok @dd_bb если принимаются заказы на темы я бы очень хотел разузнать про варианты диагностики. вот например типичный кейс: вдруг la 100500, всё тупит. как найти кто виноват, инструменты, кейсы, механика.

Artem
03.06.2018
18:51:04
ок) накидывайте вопросы, как раз будет о чем подумать к следующему стриму. Заодно и свой разговорный скил прокачать, а то я в виду отсутствия обратной связи, немного терялся и тупил))))

Алишер
03.06.2018
18:55:56
systemctl cat mongod ; systemctl edit mongod
о, спаисбо за шорткат, я раньше заходил в /etc/systemd/..../...

Алексей
03.06.2018
18:56:18
лимиты видны через systemctl show mongod

Алишер
03.06.2018
18:58:30


на primary и secondary.

третий - арбитр. не смотрю.

то что тут написано - имеет общее с реальностью https://toster.ru/q/419194

?

Artem
03.06.2018
19:09:34
у меня была абсолютно такая же проблема, но связана была с багами в старой версии монгоса. помогло обновление с версии 3.4.1 до 3.4.12

yopp
03.06.2018
19:16:47
Это, кстати, с монгосами частая проблема

Google
yopp
03.06.2018
19:17:13
Их нужно обновлять самыми последними и при любых проблемах оставлять на последней работающей версии

Алишер
03.06.2018
19:18:54


yopp
03.06.2018
19:20:09
Там уже 3.4.15 вышел

Алишер
03.06.2018
19:20:40
круто, но проблема сохраняется уже больше месяца

просто это волшебное число 819

yopp
03.06.2018
19:22:16
Попробуйте монгосы обновить

https://groups.google.com/forum/m/#!topic/mongodb-user/qHZiKa5oyM8

https://docs.mongodb.com/manual/reference/ulimit/

Алексей
03.06.2018
19:24:42
ржачно

Алишер
03.06.2018
19:24:57
https://groups.google.com/forum/m/#!topic/mongodb-user/qHZiKa5oyM8
у них там проблема с пхп драйвером

Страница 253 из 342