@MongoDBRussian

Страница 316 из 342
29.09.2018
12:28:16


Vova
29.09.2018
12:32:23
year и season это числовые поля?

29.09.2018
12:32:39
Ну вообще строки

Vova
29.09.2018
12:32:51
year: "", season: "" попробуй

Google
29.09.2018
12:33:33
Неа, тоже самое выходит

Странно конечно

Vova
29.09.2018
12:33:59
А какой полный текст ошибки?

29.09.2018
12:34:17
Вот же он

Монга думает что $unset пустой почему-то

Vova
29.09.2018
12:36:13
покажи полный запрос, я так понял что верхний и нижний скрины не связаны

29.09.2018
12:36:58


Вот

Таки запарился со скрином

Vova
29.09.2018
12:40:52
year без кавычек

И второй тоже

29.09.2018
12:41:15
Та дело не в них, уже убрал все равно

Таже ошибка

Google
29.09.2018
12:43:22
Хех

Понял в чем была ошибка, вопрос решен

Vova
29.09.2018
13:26:29
nexxtmedia
29.09.2018
14:35:02
Хранить лайки в том-же документе очень плохая идея
вы предлагаете их отдельно хранить? зачем?

А можете сказать это реальный проект или поиграться с монгой?
в зависимости от ответа на этот вопрос зависит ответ?

Nick
29.09.2018
14:36:51
тут сугубо личный интерес понять какого рода реальные задачи люди пытаются решить на монго, а не просто из академического интереса чтото там придумали и пытаются поиграться

yopp
29.09.2018
14:39:15
nexxtmedia
29.09.2018
14:40:54
а в двух словах никак?

я эту стаьтю неделю читать буду

кроме того, в статье речь о комментах (у которых куча своих данных)

и лайков у меня по сути нет как таковых, есть только каунтер и массив с айдишниками

29.09.2018
14:54:46
расскажи нам, интересно)
А, ну я там в схеме просто поля удалил. Поставил назад и все починилось

nexxtmedia
29.09.2018
15:28:23
Хм, интересно, а почему это не работает, объекты в массиве не меняются, const tweets = await Tweet.find({author}).exec() const proceedTweets = tweets.map(tweet => { Object.assign(tweet, {extra: 'stuff'}) return tweet })

как быть?

походу монгуз ебанный возвращает не обычный массив

nexxtmedia
29.09.2018
15:57:30
.lean() надо. фича Монгуза. решено. сорри за мат, 40 минут на это убил

yopp
29.09.2018
18:00:29
кроме того, в статье речь о комментах (у которых куча своих данных)
Прочитайте статью. Документ имеет предельный размер, он когда-то закончится. Увеличение размера документа увеличивает затраты на его обновление. Когда вы показываете ленту, вам придётся доставать весь документ, со всеми лайками.

На мой взгляд самый корректный способ: группировать лайки к посту в отдельные документы. Например по 500 штук. С индексом по id лайкающего и id поста.

Так можно будет легко достать все отлайканные посты пользователя и очень дёшево проверять лайкнул ли пользователь конкретный пост

Google
yopp
29.09.2018
18:04:21
Не помню, работают ли covered queries с индексами по массивам, если да, то список отлайканных постов можно будет без обращения к документу получать

Bro
01.10.2018
05:35:23
посмотрел там про лайки твитов

хз как в твиттере в инстаграме в блобе данных на страницу фотографии сразу все высылают кто лайкнул

Joseph
01.10.2018
06:30:52
Доброе утро , а не подскажите есть ли какая то короткая запись у на у вот такого populate { path: 'route', populate: { path: 'waypoints.commands.command', model: 'Command' }, }, потому что что то типо такого не проканало populate('route.waypoints.commands.command')

Joseph
01.10.2018
07:22:59
Не понятно вопрос задали. Поясните.
Можно ли как то вложенный популейт записать в одну строчку

Игорь
01.10.2018
07:34:40
Приветсвую! Такой вопрос. Размер базы в монго 10 гигабайт, монго работает несколько месяцев. В оперативной на сервере занимает 41 гб. Это нормальное поведение?

Joseph
01.10.2018
07:40:34
"route." в начале убери
не разварачивает `populate('waypoints.commands.command')`

Игорь
01.10.2018
07:49:19
блин, не то посмотрел. 10 это сжатый размер базы, а так, вместе с индексами где-то порядка 35+ гб

Игорь
01.10.2018
10:25:58
оперативы порядка 100, монго есть из них 40. Замеряю через top или htop

yopp
01.10.2018
10:29:16
хз как в твиттере в инстаграме в блобе данных на страницу фотографии сразу все высылают кто лайкнул
не знаю про инстаграмм, а в твиттере постраничный вывод. получить весь список за раз — нельзя. потому что феномен джастина бибера

в кеше wt хранятся несжатые страницы

Constantin
01.10.2018
10:33:00
оперативы порядка 100, монго есть из них 40. Замеряю через top или htop
Это нормальное поведение. Для быстродействия она будет держать данные в оперативной памяти. В принципе — это нормальное поведение для любой СУБД. Как сказал @dd_bb — странички в кеше держать выгоднее, чем постоянно читать их с диска, в разы выгоднее. Она будет кушать оперативную память пока жадность позволит, потом наиболее старые кеши будет выгружать из памяти. Еще стоит следить, чтобы при таких раскладах OOM Killer ее не прихлопнул, когда память на серерве будет заканчиваться

yopp
01.10.2018
10:35:17
не знаю про инстаграмм, а в твиттере постраничный вывод. получить весь список за раз — нельзя. потому что феномен джастина бибера
возвращаясь к хранению мелких сущностей. «толстые» документы тоже ничего хорошего не несут. bson при обновлении в том или ином виде надо будет сериализировать/десериализировать. чем больше размер документа, тем дольше это будет занимать. если документ статичный и не меняется, это окей. но лайки это не статичная сущность. второй момент это трафик, можно конечно проекциями убирать поля, но это опять требует дополнительной обработки bson. на мой взгляд выбор остаётся между двумя стратегиями: одно событие один документ, одна «страница» событий один документ.

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

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

Google
OlegBrony
01.10.2018
10:57:02


Nick
01.10.2018
11:09:18
Оставляйте все по дефрлту кроме дата и лог папки

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

yopp
01.10.2018
11:10:35
На макс размер кэша. Чтобы монга не лезла сильно и не забирала оперативку у других прог
Да, https://docs.mongodb.com/manual/reference/configuration-options/#storage.wiredTiger.engineConfig.cacheSizeGB

На макс размер кэша. Чтобы монга не лезла сильно и не забирала оперативку у других прог
Но вообще базы данных лучше изолированно от других приложений содержать

OlegBrony
01.10.2018
11:13:46
Оставляйте все по дефрлту кроме дата и лог папки
я уже поставил это, но вылетает это



мне посоветовали это поставить, https://mlab.com/signup/

Nick
01.10.2018
11:14:28
Вы не админ, запустите устанлвку от админа

Constantin
01.10.2018
11:14:44
Запустите установку от имени администратора

OlegBrony
01.10.2018
11:14:57
окей, попробую.

в меню нет пункта "установка от админа". если я консоль через админа открою и запущу файл, это сработает?

Nick
01.10.2018
11:18:07
Загуглите, так будет проще

OlegBrony
01.10.2018
11:20:07
гуглил же. на стаковерфлоу 1 вопрос, у него было из-за отсутствия .net.

Nick
01.10.2018
11:24:10
Просто запустите от админа, этож базовое действие в винде

Либо просто вручную запустите сервис

OlegBrony
01.10.2018
11:29:18
Не работает запуск.

Google
OlegBrony
01.10.2018
11:30:08
Телега работает только на телефоне почему-то. Не могу скрин отправить.

У всех Линукс?

Vova
01.10.2018
11:35:59
Сколько виртуальных ядер смотреть посоветуете? Оперативки я и так понял что нужно овер дофига

yopp
01.10.2018
11:36:31
В пиковые нагрузки это приводит к повышенной конкуренции между нагружённым приложением и нагружённой монгой и может очень негативно на производительности сказываться

От задач и ядер зависит. Можно и на одном ядре :)

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