Anonymous
я эту стаьтю неделю читать буду
Anonymous
кроме того, в статье речь о комментах (у которых куча своих данных)
Anonymous
и лайков у меня по сути нет как таковых, есть только каунтер и массив с айдишниками
Anonymous
расскажи нам, интересно)
А, ну я там в схеме просто поля удалил. Поставил назад и все починилось
Anonymous
Хм, интересно, а почему это не работает, объекты в массиве не меняются, const tweets = await Tweet.find({author}).exec() const proceedTweets = tweets.map(tweet => { Object.assign(tweet, {extra: 'stuff'}) return tweet })
Anonymous
как быть?
Anonymous
походу монгуз ебанный возвращает не обычный массив
Anonymous
.lean() надо. фича Монгуза. решено. сорри за мат, 40 минут на это убил
yopp
кроме того, в статье речь о комментах (у которых куча своих данных)
Прочитайте статью. Документ имеет предельный размер, он когда-то закончится. Увеличение размера документа увеличивает затраты на его обновление. Когда вы показываете ленту, вам придётся доставать весь документ, со всеми лайками.
yopp
На мой взгляд самый корректный способ: группировать лайки к посту в отдельные документы. Например по 500 штук. С индексом по id лайкающего и id поста.
yopp
Так можно будет легко достать все отлайканные посты пользователя и очень дёшево проверять лайкнул ли пользователь конкретный пост
yopp
Не помню, работают ли covered queries с индексами по массивам, если да, то список отлайканных постов можно будет без обращения к документу получать
Bro
посмотрел там про лайки твитов
Bro
хз как в твиттере в инстаграме в блобе данных на страницу фотографии сразу все высылают кто лайкнул
Joseph
Доброе утро , а не подскажите есть ли какая то короткая запись у на у вот такого populate { path: 'route', populate: { path: 'waypoints.commands.command', model: 'Command' }, }, потому что что то типо такого не проканало populate('route.waypoints.commands.command')
Joseph
Не понятно вопрос задали. Поясните.
Можно ли как то вложенный популейт записать в одну строчку
Игорь
Приветсвую! Такой вопрос. Размер базы в монго 10 гигабайт, монго работает несколько месяцев. В оперативной на сервере занимает 41 гб. Это нормальное поведение?
Joseph
"route." в начале убери
не разварачивает `populate('waypoints.commands.command')`
Игорь
блин, не то посмотрел. 10 это сжатый размер базы, а так, вместе с индексами где-то порядка 35+ гб
Игорь
оперативы порядка 100, монго есть из них 40. Замеряю через top или htop
yopp
хз как в твиттере в инстаграме в блобе данных на страницу фотографии сразу все высылают кто лайкнул
не знаю про инстаграмм, а в твиттере постраничный вывод. получить весь список за раз — нельзя. потому что феномен джастина бибера
yopp
в кеше wt хранятся несжатые страницы
Constantin
оперативы порядка 100, монго есть из них 40. Замеряю через top или htop
Это нормальное поведение. Для быстродействия она будет держать данные в оперативной памяти. В принципе — это нормальное поведение для любой СУБД. Как сказал @dd_bb — странички в кеше держать выгоднее, чем постоянно читать их с диска, в разы выгоднее. Она будет кушать оперативную память пока жадность позволит, потом наиболее старые кеши будет выгружать из памяти. Еще стоит следить, чтобы при таких раскладах OOM Killer ее не прихлопнул, когда память на серерве будет заканчиваться
yopp
не знаю про инстаграмм, а в твиттере постраничный вывод. получить весь список за раз — нельзя. потому что феномен джастина бибера
возвращаясь к хранению мелких сущностей. «толстые» документы тоже ничего хорошего не несут. bson при обновлении в том или ином виде надо будет сериализировать/десериализировать. чем больше размер документа, тем дольше это будет занимать. если документ статичный и не меняется, это окей. но лайки это не статичная сущность. второй момент это трафик, можно конечно проекциями убирать поля, но это опять требует дополнительной обработки bson. на мой взгляд выбор остаётся между двумя стратегиями: одно событие один документ, одна «страница» событий один документ.
yopp
начинать наверное лучше с первой стратегии, она самая дубовая
yopp
когда данных станет так много, что оверхед станет заметным — начинать группировать
Oleg
помогите с установкой, пожалуйста. что значит 'as a service' и нужно ли мне это?
Vova
На макс размер кэша. Чтобы монга не лезла сильно и не забирала оперативку у других прог
Nick
Их нужно кудато явно вынести, чтоб потом не думать где оно все хранится
yopp
На макс размер кэша. Чтобы монга не лезла сильно и не забирала оперативку у других прог
Да, https://docs.mongodb.com/manual/reference/configuration-options/#storage.wiredTiger.engineConfig.cacheSizeGB
yopp
На макс размер кэша. Чтобы монга не лезла сильно и не забирала оперативку у других прог
Но вообще базы данных лучше изолированно от других приложений содержать
Oleg
Оставляйте все по дефрлту кроме дата и лог папки
я уже поставил это, но вылетает это
Oleg
Oleg
мне посоветовали это поставить, https://mlab.com/signup/
Nick
Вы не админ, запустите устанлвку от админа
Constantin
Запустите установку от имени администратора
Oleg
окей, попробую.
Oleg
в меню нет пункта "установка от админа". если я консоль через админа открою и запущу файл, это сработает?
Nick
Загуглите, так будет проще
Oleg
гуглил же. на стаковерфлоу 1 вопрос, у него было из-за отсутствия .net.
Nick
Просто запустите от админа, этож базовое действие в винде
Nick
Либо просто вручную запустите сервис
Oleg
Не работает запуск.
Oleg
Телега работает только на телефоне почему-то. Не могу скрин отправить.
Oleg
У всех Линукс?
Vova
Сколько виртуальных ядер смотреть посоветуете? Оперативки я и так понял что нужно овер дофига
yopp
В пиковые нагрузки это приводит к повышенной конкуренции между нагружённым приложением и нагружённой монгой и может очень негативно на производительности сказываться
yopp
От задач и ядер зависит. Можно и на одном ядре :)
Vova
Ну запросов так десятки тысяч держать к бд в секунду. Это я уже смотрю далеко в будущее, но всё же
Nick
У всех Линукс?
Как раз вчера ставил 4.0.2 на вин8, выглядело как далее, далее, указал пути, далее. подцепился создал базу. только у меня юзер админ и выключены все uac и иже с ними
Oleg
это как-то лечится?
Oleg
вот, соседний файл.
Nick
а правой кнокой что не позволяет?
Oleg
Oleg
Nick
понятно, момент
Oleg
гугл молчит
Oleg
ты уже встречался с таким? окей. жду.
Nick
тогда через консоль запущенную в режиме админа
Nick
команда msiexec /i путь до msi
Oleg
а как это сделать? runas /user:<olegb>\administrator cmd c:\Users\olegb\Downloads\mongodb-win32-x86_64-2008plus-ssl-4.0.2-signed.msi не помогает
Oleg
ну... запустилось как обычно. окошко не всплыло.
Nick
найдите в пуске cmd его правой кнопкой и ранать как админ, в нем уже пишите
Oleg
строка от админа.
Nick
а зачем там тогда runas?
Oleg
в гугле так нашёл.
Oleg
Nick
тогда приколюхи системы