Yevhenii
Какую задачу вы решаете? Зачем вам количество всех документов?
пока незачем, тестирую насколько она быстрая. так как знаю что разработчики любят делать каунты постоянно
Danish
у меня такая же была проблема. в итоге установил через докер на убунту сейчас нет проблем.
Можете пожалуйста мне прислать инструкцию как развернуть докер или ссылку на образ?
Nurlan
Nurlan
В оффдоках есть кажется
Danish
А как настраивали. Я с докером работал давно впоследний раз
Nurlan
У вас убунту?
Danish
да
Nurlan
да
Там все по доку и все
Danish
Спасибо
Artem
привет, я хочу сделать для каждого нового дока монги порядковый уникальный номер, но есть вариант того, что в тайминг между тем как я посчитал доки коллекции и записал этот, влезет уже еще Х документов ( мало -ли ) , есть варики решения проблемы может быть ?
Artem
в моем понимании у монги должен быть метод под это, инструмент то мощный, но я такого не нашел)
Daniil
Потому что его нет
Daniil
Есть рабочий вариант получать этот номер через редис например
Daniil
Но чаще всего не так он нужен этот номер
Artem
Да, верно, но допустим если стоит ограничение на максимальный размер пейлоада в кнопке, а у _ид длина то 24 вроде символа) Это много. Порядковый бы номер занял меньший пейлоад
Nick
Да, верно, но допустим если стоит ограничение на максимальный размер пейлоада в кнопке, а у _ид длина то 24 вроде символа) Это много. Порядковый бы номер занял меньший пейлоад
это кнопки у калькуляторов стародавних что ли с такими ограничениями?) экономия на спичках, вводя проблемную абстракцию. Но это не сходится с высказанным опасением "но есть вариант того, что в тайминг между тем как я посчитал доки коллекции и записал этот, влезет уже еще Х документов". Если у вас возможна такая ситуация, то сэкономить не получится, вы будете переплачивать за это много большей сложностью системы
Nick
Да, верно, но допустим если стоит ограничение на максимальный размер пейлоада в кнопке, а у _ид длина то 24 вроде символа) Это много. Порядковый бы номер занял меньший пейлоад
ну и по существу, вы хотите автоинкремент, которого в монге из коробки нет, т.к. не нужен. Но если прям позарез охота, то гуглится достаточно быстро реализация через один док с счетчиком в отдельной коллекции и апдейт с инкрементом. Но еще раз напомню, что это переусложнение
‎محمد
Есть у меня сайт типа электронный журнал для колледжа, для разработки бэка express+mongoDB норм затея для такого?
Gregory
Всем привет! подскажите пожалуйста у монги есть какой нибудь disk threshold из коробки? ( типа переставать писать в БД при заполнении 95 процентов диска )
Andrey K.
Есть у меня сайт типа электронный журнал для колледжа, для разработки бэка express+mongoDB норм затея для такого?
имхо, для электронного журнала учебного заведения в идеале подошла бы реляционная БД. Всякие там списки учащихся, предметов. Прекрасно все влезает в таблички. Как когда-то в бумажном журнале)
Назар
Всем привет. Есть mongoose, но так получилось что в коллекции в поле записалось иногда число так число, а иногда как строка. Теперь когда я делаю поиск и в схеме у меня тип число, то находит только документы где тип тоже число, а когда тип в схеме строка то только где строки. Это можно как то пофиксить в схеме? Или только приводить к единому типу?
Yevhenii
Подскажите, а монга поддерживает графы? Кто-то имел опыт?
Danish
А просто оьновить никак?
Ну у меня бывало что я тип данных в схеме менял и что-то оно не меняло тип и я просто удалял коллекцию и она заново создавалась при развертывании сервера. И потом норм было. Ну если важно чтобы данные сохранились, можно просто сохранить коллекцию в json, удалить коллекцию, и после запуска сервера посоздавать документы, заполняя данными из сохраненной коллекции в json формате
Назар
В самой монге сделать апдейт можно
как кстати лучше всего сделать? просто перебрать и пересохранить?
Danish
Хз, я не особо шарю. Это как я решил проблему
Александр
Добрый вечер. Подскажите пожалуйста ....
Александр
Время с explain 14 секунд для агрегации, если убрать explain - 46 секунд. Как это может получиться?
Никита
Подскажите, такой вопрос, допустим есть маленькая БД. Пускай в ней порядка 10000 объектов размером от 1 до 10 МБ. Допустим у меня не очень много операций обновления этих объектов, к примеру порядка 10 rps. И порядка 1000 rps с read concern majority (кластерный вариант). Read preference = primary. Насколько монге будет плохо от того что относительно большие объекты довольно часто читают? Она из оперативы будет возвращать данные в основном?
Nick
Время с explain 14 секунд для агрегации, если убрать explain - 46 секунд. Как это может получиться?
эксплейн без передачи в параметр executionStats или allPlansExecution только выведет инфу по плану выполнения запроса а сам запрос выполнять не будет
Nick
Подскажите, а монга поддерживает графы? Кто-то имел опыт?
прям графыграфы нет, есть возможность работать с циклическими связями с какойто глубиной аля графы. Единственный оператор - https://www.mongodb.com/docs/manual/reference/operator/aggregation/graphLookup/
‎محمد
Здравствуйте! Указал текущий IP в белом листе на сайте и вчера это работало, но сегодня, при подключении всё равно вылазит ошибка. В чем может быть проблема? (IP в белый лист текущий тоже закинул, и даже 0.0.0.0./0 сделал)
Кирилл
Добрый день подскажите плз, по проблеме медленного чтения с secondary нормально ли если на primary запрос выполняется за 2 секунды, на secondary - 20? есть primary и secondary ноды, версия монго 5.0.2 добавил опцию readPreference=secondaryPreferred для того, чтобы запросы на чтение отправлялись на secondary запросы на чтение туда действительно уходят и при этом, обрабатываются значительно медленее чем на primary если на primary запрос выполняется за 2 секунды, на secondary - 20 при повторном запросе, на secondary выполняется за 18 секунд ) такое замедление запросов выглядит странным гуглил на эту тему, пишут что прогрев кеша помогает в моем случае это не помогло, что можно еще почитать, проверить?
Nick
Добрый день подскажите плз, по проблеме медленного чтения с secondary нормально ли если на primary запрос выполняется за 2 секунды, на secondary - 20? есть primary и secondary ноды, версия монго 5.0.2 добавил опцию readPreference=secondaryPreferred для того, чтобы запросы на чтение отправлялись на secondary запросы на чтение туда действительно уходят и при этом, обрабатываются значительно медленее чем на primary если на primary запрос выполняется за 2 секунды, на secondary - 20 при повторном запросе, на secondary выполняется за 18 секунд ) такое замедление запросов выглядит странным гуглил на эту тему, пишут что прогрев кеша помогает в моем случае это не помогло, что можно еще почитать, проверить?
Как правило дело именно в кэшах и греться им надо под нормальной нагрузкой а не разовыми запросами. И запрос исполняемый использует индексы или нет? Они тоже прогрева требуют. Конфигурация серваков одинаковая?
Nick
как много греть нужно на ваш взгляд?
Просто нагрузку дать такую же как на мастер пока нагрузка на диск не станет схожей с мастером
Alexey
Добрый день Вопрос относительно DbRef Если я удалю документ из коллекции на который ссылаются в другой коллекции, то ссылка в другой коллекции удалится автоматически? По примеру связей в SQL базах?
Alexey
Нет
А как тогда в реализовать это? Чтобы если я удалял док из родительской коллекции, во всех других коллекциях, где есть ссылка она удалялась?
Easy Rider
Кто знает можно ли как то убрать дублирование кода в такой ситуации: Имеем C# Имеем сервисы, которые содержат методы, в каждом из которых может идти работа с несколькими коллекциями В начале каждого метода создается сессия, using(var session = ... Внутри блок try ... catch, чтобы коммитить или абортить транзакцию И таким образом, одинаковый код повторяется в каждом методе. Как этого можно избежать?
Easy Rider
выносишь using(var session = ... Внутри блок try ... catch, это все в отдельный метод, который принимает функцию - собственно логику внутри транзакции
ну да, я думал об этом, но делают ли так на практике? нет ли тут какого-нибудь антипаттерна? все-таки, совать постоянно Func это усложняет читаемость
Артем
наоборот упрощает читаемость
Артем
ты можешь в метод лямбду передавать) и тогда будет везде примерно UseTransaction(() => { твоя логика });
Easy Rider
вместо обычного вызова метода бизнес-логики, получается я должен вызывать один и тот же метод всегда...
Easy Rider
а нельзя ли как-то сделать без этого оверхеда синтаксического?
Артем
не используй тогда транзакцию)
Easy Rider
надо же использовать...
Easy Rider
вот например в asp.net есть фильтры, мидлвары... там как-то оно раз задается и прозрачно работает
Easy Rider
насколько я понимаю это можно сделать через Аспектно-ориентированное программирование...
Артем
вот например в asp.net есть фильтры, мидлвары... там как-то оно раз задается и прозрачно работает
ну ты не путай внутренний мдилваре, фильтры - это тоже самое у них и твой код, как раз внутри который - который по факту также action как я тебе предлагаю сделать
Артем
везде этот подход используется
wisp
добрый вечер. подскажите, пожалуйста, как на ноде случайно выбрать документ.
Alex
Ребят, а нормально ли делать сортировку на основе аггрегированных данных? То есть в любом случае СУБД придётся пройтись по всей коллекции, где может быть несколько миллионнов документов, а потом ещё и отсортировать их?
yopp
А что возвращает .countDocuments?
yopp
Это особенность метода count, он возвращает информацию из метаданных коллекции, а не из курсора
yopp
count deprecated в пользу estimatedDocumentCount и documentCount
Alex
так сортируй по индексированным полям
Индексы настолько крутые, что по этим полям можно всю базу прогонять?
yopp
по этому его и разделили, потому что там два режима было, без указания запроса в этом случае это был поиск по метаданным коллекции, если запрос указан, то по курсору
Easy Rider
Индексы настолько крутые, что по этим полям можно всю базу прогонять?
хз, я обычно если у меня есть такие вопросы, трачу час времени на написание бенчмарка)
yopp
не уверен почему count({}) возвращает тоже эстимейт, но возможно это связано с тем что {} в принципе пустой запрос
yopp
можно попробовать с {_id: { $exists: true }}
Easy Rider
Кто использовал в дотнете MongoDB.Entities ? Это оболочка над драйвером, которая как бы делает жизнь проще... https://mongodb-entities.com/ Вот сижу думаю - стоит ли попробовать с ней работать? Или нафиг?