Евгений
И на сколько сильно плохой тот вариант, который я отправил? Сильная ли нагрузка, если данных много
El
Приветствую. Если нужно обеспечить на кластере приложениям доступ к real time изменениям, движок ДБ имеет значение? Вроде WiredTiger, inMemory ?
El
что такое в вашем понимании real time изменения?
Изменения данных в коллекции.
Nick
Изменения данных в коллекции.
не имеет значения, выбор движка это про персистентность и скорость
El
Спасибо.
Sergey
Доброго времени суток! Подскажите пожалуйста, какие преимущества/недостатки есть у MongoDB в долгосрочной перспективе использования на проде, по сравнению, например, с PostgreSQL ? Или это зависит от изначальных целей и того, какой результат предполагается?
Владимир
Добрый день! Конкретно у нас возникли проблемы с транзакциями (приходит запрос на обновление одного и того же документа -> несколько транзакций запускаются и все после первой падают, пришлось заводить ретраи. Еще в некоторых случаях документная модель не совсем подходит что-ли🤔
Петр
Народ, кто шарит за агрегационные запросы? Или кто нибудь из вас делал отчёты по данным используя монгодб?
Александр
Я
Петр
Я
Могу в личку написать?
Александр
Нет(, лень, спать хочу
Нуриддин
Доброго времени суток! Подскажите пожалуйста, какие преимущества/недостатки есть у MongoDB в долгосрочной перспективе использования на проде, по сравнению, например, с PostgreSQL ? Или это зависит от изначальных целей и того, какой результат предполагается?
По поводу вопроса, да по большей части зависит от этих факторов, но и мелочи стоит учитывать. К примеру postgresql сама по себе не может обрабатывать больше 100 пользователей. Над ней должн быть какой-то прокси или кэшер типа pgbouncer, но при этом может очень компактно и удобно хранить json
Евгений
Добрый день! Хочу уточнить, можно ли как-то populate делать в aggregate?
Vitalii
hallo у меня spa без ssr на vercel (бесплатный) и тут пришлось добавить serverless c mongodb и вот такая проблема что коннект к монго работает через раз почти всегда, выглядит это странно и не понятно, может кто сталкивался?
Alexander
Привет! Для монги есть разница между существующим полем в документе со значением null и отсутствием поля?
andreyvsc
Всем привет. А есть в монге pitr стандартными методами, без использования pbm?
Black
В чем смысл Approximation паттерна?
Магомед
Да
А есть разница между существующим полем в документе со значением undefined и отсутствием поля?
Nick
А есть разница между существующим полем в документе со значением undefined и отсутствием поля?
https://www.mongodb.com/docs/manual/reference/bson-types/ Да, если используемый драйвер решит явно это поле выставить проигнорив депрекейтед, то будет поле
ILIA
Коллеги, подскажите пожалуйста как правильно делать бэкапы в шардированной mongo db , какой порядок действий. Архитектура следующая: 3 конфигурационных сервера, 3 mognos , 2 шарда по 3 сервера каждый.
Евгений
Добрый день. Использую Mongoose. В чем может быть ошибка? Выдает пустой массив departments Я что-то не так в lookup прописал?
Евгений
Евгений
Нуриддин
Коллеги, подскажите пожалуйста как правильно делать бэкапы в шардированной mongo db , какой порядок действий. Архитектура следующая: 3 конфигурационных сервера, 3 mognos , 2 шарда по 3 сервера каждый.
У вас 3 варианта: 1. PBM -уже всё готово для бекапов, но могут возникнуть проблемы во время переездов или востоновлении + есть разные режимы бекапирование 2. Свои скриптики с основой mongodump 3. mongoexport просто вывести всю базу в файлы json
Nick
В from название коллекции, а не имя модели
Black
В чем смысл Approximation design паттерна?
yopp
В чем смысл Approximation design паттерна?
Уменьшить количество записей тех данных, для которых абсолютна точность не нужна, например объема трафика или просмотра страниц (если это не завязано на биллинг)
Евгений
Такой вопрос. У меня имеется список сотрудников организации (staffer organization) На основе этого списка я нашел список всех отделов (departments) у данной организации На основе списка departments я нашел список всех сотрудников отдела Как мне в конечном итоге, вывести у сотрудника организации (staffer organization), все departments, в которых он состоит? Пока что у меня получается так, что у каждого пользователя выводится доп. массив, которых хранит всех сотрудников отдела
Евгений
Ну или где и как требуется сохранить _id найденного staffer organization, чтобы при найденных staffer departments фильтровать их
Vladimir
Всем привет, такой вопрос, часто приходится использовать facet и стал упираться в ограничение по памяти PlanExecutor error during aggregation :: caused by :: document constructed by $facet is 335923953 bytes, which exceeds the limit of 335544320 bytes, тюнили размер, но это не выход каждый раз увеличивать объем памяти используемый для facet + там можно далее словить BufBuilder attempted to grow() to 67108899 bytes, past the 64MB limit., вопрос есть ли альтернатива facet? Для примера опишу немного кейс: { $match: { some expressions }} { $facet: { withOptions: [ { $unwind: '$option' }, ... some actions ], noOptions: [ { $match: { options: [] }} ] }} { $replaceRoot: { newRoot: { list: { $concatArrays: [ '$withOptions', '$noOptions' ]}}}}, { $unwind: '$list' }, { $replaceRoot: { newRoot: '$list' }},
Евгений
Использую Mongoose. Сначала проблема: - Использую unwind, чтобы достать ID присоединенных отделов (departments), чтобы дальше с этой ID работать - Из-за UNWIND происходит создание лишних объектов. Условно: Пользователь 1 + Отдел 1, Пользователь 1 + Отдел 2. Как мне сделать так, чтобы было: ПОльзователь 1 + [Отдел 1, 2], но при этом достать ID данных отделов
Vladimir
Группируй и властвуй addFields
Евгений
Как-то запутанно запрос выглядит
Знаю, я этот aggregate только вчера начал изучать
Евгений
Явно то, что я делаю можно сделать легче
Евгений
Ты еще не видел дальше
Vladimir
Знаю, я этот aggregate только вчера начал изучать
Мой совет нарисуй uml, посмотри связи, далее вытащи то, что нужно по айди
Евгений
-
Либо через ` вставляйте код либо используйте типа pastebin, чтобы читабельно было. Также опишите, что у вас где есть и какой результат вы хотите, так легче будет вам помочь
Vladimir
второй лукап разбейте на несколько и будет проще для восприятия
Евгений
UML диаграмма - Краткое описание: 1. Коллекция - Пользователи 2. Коллекция - Организации 3. Коллекция - Отделы 4. Коллекция - Должности в Отделах 5. Коллекция - Сотрудники Организации Мне нужно: - Получить список сотрудников организации (массив), в котором будет отображаться информация о пользователе (объект): его email, массив отделов, в которых он состоит и какая у него должность в данном отделе. - Если сотрудник не состоит в отделе, то массив отделов пустой На входе я получаю только ID организации
Евгений
Евгений
Vladimir
самое простое собери все что нужно lookup+unwind, Далее сгруппируй, как тебе угодно, можно перед этим собрать нужную структуру
Vladimir
и мой тебе совет, если только начинаешь работать с агрегациями, используй простой lookup, без let+pipeline
Евгений
Смотри, у меня на входе чисто ID Организации. Как это я вижу: Lookup 1: Мне нужно получается найти всех сотрудников организации (не трудно, так как есть ID организации) Lookup 2: Мне нужно найти список всех отделов (не трудно, так как есть ID организации) Трудность начинается дальше. Мне нужно найти список всех должностей в отделах. Следовательно нужно опираться на тот массив найденных отделов
Vladimir
тут не очень понятно, у департамента только одна запись о должности?
Vladimir
такое ощущение, что нет связи между должностью и user'ом
Евгений
Забыл, в Position Department есть еще userId
Viktar
Добрый день, столкнулся с такой проблемой, удалил базу (500гб dropDatabase). Но свободное место так и не появилось(прошло 4 дня) версия монги 6.х. Может кто сталкивался или знает как решить. repair не вариант, оставшихся баз на 12Тб, он займет недели.
Vladimir
ну в конце можешь не unwind, а first + filter по userId использовать для positionDepartments
Умид
Доброго времени суток Подскажите пожалуйста в данный момент я новичок в области MongoBD поработал на mongo compas и mongosh то что внутри mongoBD создал БД создал несколько коллекции и документы там вкладные документы поработал с запросами и операторами Что можете посоветовать дальше изучать
Умид
а цель какая?
Мы начали это изучать в университете тема мне самому понравилось из за этого начал изучать в данный момент программу универа по этой области освоил на 100% хотелось бы дальше изучать
Умид
https://roadmap.sh/mongodb
Спасибо большое
Nick
Мы начали это изучать в университете тема мне самому понравилось из за этого начал изучать в данный момент программу универа по этой области освоил на 100% хотелось бы дальше изучать
стоит определиться с целью, как минимум выбрать для себя путь наподобие: набраться знаний чтобы потом в качестве админа поднимать и сопровождать, или быть разработчиком и писать запросы и выстраивать структуру. Или например упоротое - хочу писать саму монгу и делать мир лучше) Разные цели, разные пути, разные навыки, причем все их невозможно наработать без собственно работы, где сталкиваешься с монгой и решаешь рутинные и не очень задачи
Nick
Хорошо учту На последок я в данный момент создаю БД с обширными коллекциями и соответствующими документами ( структура учебного заведения ) И в дальнейшем подниму на облачное хранения через mongo atlas то что описано это является задачей разработчика mongo ?
в этом случае да. На больших проектах тут могут подключаться отдельно аналитики и DBA и разработчику остается только использовать проработанную структуру и писать запросы
Nick
А человек который хороший владеет с операторами и запросами это является администратором ?
тут надо разделять DBA (администратор баз данных) и админа (который сопровождает). Второй может и писать запросы, но это не основная деятельность и знать все смысла нет. А вот первому уже надо, т.к. его основная дейстельность именно в этом и заключается
andreyvsc
Интересное...
Nick
Писать запросы - задача DBA?
да, самая прямая. Разработчик приходит к ДБА и говорит "вот мне надо собрать такую эксельку, но с твоей структурой черт ногу сломит, сроку два дня, таска вон там"