Anonymous
Anonymous
Anonymous
Говорить вот так
Anonymous
И бот не работает
Anonymous
Можете помочь?
Anonymous
Я запускал через node app
Murena
Всегда с момента запуска?
Нет не сразу, после поиска по базе, база большая, интересно как предотвратить чтоб не выгружалось все в оперативку .
Murena
Всегда с момента запуска?
размер базы 30 гигабайт , после поиска где то гиг 15-20 оперативы начинает занимать процес, больше всего занимает места одна коллекция основная
Murena
я уже думаю может разбить одну большую коллекцию на несколько перестроить структуру бд подругому - чтоб динамически создавать коллекции - чтоб небыло такого что одна коллекция 30 гиг.
Murena
но непонятно или это поможет
Daniil
это нормально
Daniil
монга любит жрать оперативу и не любит отдавать
Daniil
но работе это не мешает
Daniil
главное позаботиться чтобы на сервере помимо монги ничего не было особо
Daniil
редисов/рэббитов там всяких
Daniil
только ос и мб какие то процессы для бэкапа и тд
Daniil
чтобы они не конкурировали за ресурсы
Murena
чтобы они не конкурировали за ресурсы
еще есть проблема - при таком размере бд - когда сильно нагружать бд - на запись образного говоря за 10-15 минут примерно 1 гигабайт информации загружать в бд - бывает вылетает бд в ошибку invalid BSON приходится запускать восстановление, в конкретно самой большой схеме из 20 полей схемы 5 с индексами. Я еще до конца не понял как с этим боротся - то ли из за большого обьема индексов база крашится то ли хз.
Murena
или у меня в железе проблема - не вывозит
Андрей
я уже думаю может разбить одну большую коллекцию на несколько перестроить структуру бд подругому - чтоб динамически создавать коллекции - чтоб небыло такого что одна коллекция 30 гиг.
Если по индексам все гуд и грамотно построен запрос, то только докидывать оперативку, если подходит к критическому пределу.
Murena
а вы уверены что все данные валидные попадают в базу в этот момент?
да, это вопрос без 100% ответа, а какой есть способ чтоб проганять все данные через что то - чтоб быть на 100% уверенным чтоб в бд попадают только валидные данные ?
Murena
чтоб бд не крашилась потом
Murena
главное позаботиться чтобы на сервере помимо монги ничего не было особо
еще вопрос - а если разбить одну большую схему на множество динамических - некоторые из них будут архивные к которым наврят будут запросы а другие активные - оперативки меньше будет процес монги сьедать ? если размер данных в схеме по которой идет поиск будет меньше ? или при поиске все схемы подгружаются в оперативку без разницы используют их или нет ?
Denis
еще вопрос - а если разбить одну большую схему на множество динамических - некоторые из них будут архивные к которым наврят будут запросы а другие активные - оперативки меньше будет процес монги сьедать ? если размер данных в схеме по которой идет поиск будет меньше ? или при поиске все схемы подгружаются в оперативку без разницы используют их или нет ?
Как вариант, если есть понимание, какие документы "архивные", например, документы, которым уже месяц от роду, то можно заюзать частичные индексы, и искать только по докам которые не старше месяца. Тогда будет использоваться только этот относительно небольшой индекс Про частичные индексы тут https://docs.mongodb.com/manual/core/index-partial/
Denis
спасибо
Но документы придется помечать, как архивные, либо обновлять индекс раз в определенное время. Насколько я знаю, нет возможности использовать в partial index динамическую переменную
Murena
чем меньше идексов тем меньше процес будет оперативки сьедать ? или где можно об этом почитать что конкретно в монге оперативку ест ?
Denis
получается монга сьедает так много оперативы из за индексов ?
имхо, индекс не должен быть настолько огромным, что делал бы ощутимую нагрузку на оперативу. Тут скорее дело в том, что сканируется гигантское количество документа без использования индекса. Про частичный индекс я скорее советовал в рамках того, что часть документов точно не используется в поиске, следовательно нет смысла их индексировать. А вот то как используется индекс можно посмотреть через explain
Denis
получается монга сьедает так много оперативы из за индексов ?
Если у тебя простой запрос и есть возможность подключиться к базе напрямую через MongoDB Compass, то там есть удобная вкладочка Explain Plan. Это поможет отловить неэффективные запросы, например, блокирующую сортировку, которая читает все документы в базе О результатах explain можно почитать тут: https://docs.mongodb.com/manual/reference/explain-results/ и https://docs.mongodb.com/manual/tutorial/analyze-query-plan/ Но, вкратце, если ты видишь "winningPlan" : { "stage" : "COLLSCAN", то, вполне возможно, твоя проблема в этом.
Denis 災 nobody
Greetings from MongoDB, Your latest bill for the MongoDB Cloud Manager organization Inc is now available. Your account has been charged $1,112.90 and billed to a credit card ending in xxxx. If you have any questions about your account, please visit our support page.
Denis 災 nobody
Почему оно такое дорогое?
Denis 災 nobody
Похоже, компания купила, у меня общий ящик подключен
Denis 災 nobody
У авс можно написать что ошибка и они могут уменьшить сумму
Phantom
Всем привет. Кто нибудь знает как можно программно проинициализировать реплику сет в го? использую драйвер go.mongodb.org/mongo-driver/mongo
Vlad
Добрый день, а можно как-то грамотно сделать выборку из нескольких коллекций используя mongoose или лучше что-то по типу Promise.allSettled использовать ?
Andrew
Подскажите, пожалуйста, я уже голову сломал, что не так. Есть объект ЧАТ, в котором есть массив участников чата. Я пытаюсь получить все чаты, в которых есть определенный пользователь, но почему-то запрос не срабатывает так, как я думал, он должен срабатывать, и в итоге возвращает пустой массив.
Andrew
Andrew
Andrew
Подскажите, пожалуйста, что я делаю не так?
Nick
{chatmembers.username : {$in:[ req.username]}}
Nick
если юзернейм всегда один то можно убрать $in полностью {chatmembers.username: req.username}
Vlad
Paul
Всем привет! Подскажите пожалуйста, MongoDB в облаке, это Mongo Atlas ?
Paul
Зарегался, предлагают создать кластер, я так понимаю, без кластера базу не создать?
Paul
Спасибо заранее 🙏
Nick
да, там создается кластер из одного репликасета
Alex
Почему ошибка перехватывается, но строка с ошибкой не возвращается? Возвращается "error": {}
Alex
Alex
Всем привет! Созрела необходимость перенести коллекцию из одной базы в другую, не используя dump, а исключительно из IDE. Не подскажете, каким образом это можно провернуть? Версия монги 4.2.8
Denis
Да
Можно попробовать вот это https://docs.mongodb.com/manual/reference/operator/aggregation/merge/ , но переносит только коллекцию, индексы не трогает
Simak
Всем привет. Подскажите пожалуйста, а кто нибудь пользуется Profiler на дев серверах с репликасетом? При ресторе бекапов с прода, как вы боретесь с изменением размера коллекций на слейвах?
Chern
всем привет, а как можно посчитать колво строк при условие? db.getCollection("user_bonuses").find({is_finished: 0 }).count() Выдает count is not supported
Chern
Есть готовый метод .countDocuments()
Спасибо, ща почитаю
Chern
а не подскажите, зачем создан метод getCollection? Можно ж просто название коллекции писать
yopp
а не подскажите, зачем создан метод getCollection? Можно ж просто название коллекции писать
есть системные коллекции со странными именами, типа rs.oplog
yopp
The method is useful for a collection or a view whose name might interact with the mongo shell itself, such as names that begin with _ or that match a database shell method.
Chern
Угу, спасибо!
Maxim
подскажите, как можно посмотреть дату создания документа?
Chern
подскажите, как можно посмотреть дату создания документа?
Монго вроде не хранит дату создания коллекции
Maxim
интересует не самой коллекции а документа
Vladimir
Maxim
вреде нашел ObjectId ( "507c7f79bcf86cd7994f6c0e" ). getTimestamp () такая команда сейчас проверю,
Vladimir
вреде нашел ObjectId ( "507c7f79bcf86cd7994f6c0e" ). getTimestamp () такая команда сейчас проверю,
ну это только если монга сама сгенерировала ObjectId, а не клиент его передал