Nick
подскажите пожалуйста, почему show dbs показывает, что база весит 80Ггб, а после mongodump 244Ггб??? это нормально?
в базе по умолчанию включена компрессия, в монгодампе же надо явно указать ключ --gzip чтобы получить сжатый архив. Также можно это сделать уже вручную после
Nick
да
Timur
и могу прям сейчас дамп просто сжать gzip'ом?
Nick
после рестора в пустую коллекцию даже будет поменьше, т.к. полная разовая наливка компактнее распологается на диске
Timur
спасибо!
Nick
@dd_bb надо бы в пин обновить что 5.0 появилась
yopp
5.0.1 (Jul 22) • 4.4.7 (Jul 16) ◦ 4.2.15 (Jul 13) Что нового в 5.0 (PDF) • Решение проблем с MongoDB по подписке • Документация • Официальные курсы (Бесплатно) Stable: 5.0.1 (Jul 22) Bugfix: 4.4.7 (Jul 16), 4.2.15 (May 6) Legacy: 4.0.24 (Apr 20, ☠️Jan ’22) По вопросам размещения вакансий, платной поддержки и покупки лицензий пишите @dd_bb ☠️ 3.6.23 (Mar ’21), 3.4.24 (Jan ‘20), 3.2.22 (Dec ’18), 3.0.15 (May ’17)
🦋noteee
Кто то подскажет в чем проблема?
Slava
а кто-нибудь пробовал уже time series в 5й ?)
🦋noteee
Кто то подскажет в чем проблема?
Подумал, что не хватает ОЗУ, сделал файл подкачки на 1гб - не помогло
𝚂𝚑𝚞𝚔𝚑𝚊
как осуществить поиск если в модели есть поле "category", а искать нужно по массиву "categories" и нужно найти все обьекты с такой категорией которая присутствует в массиве категорий?
🦋noteee
Кто то подскажет в чем проблема?
Рееебят, из-за чего так?(
Artem
реализация findManyAndUpdate? у меня есть много документов в базе и есть массив данных, большинство из них повторяется, некоторые изменены/удалены/добавлены новые. У всех документов и там и там есть уникальный числовой ID. Как лучше «смерджить» базу и массив на стороне ЯП?
Michail
Привет, подскажите пж, может вопрос для кого-то банальный. Хочу организовать REST api, и столкнулся с проблемой, что нужно получать иногда данные раскрытые (populate), а иногда без populate
Michail
Как это правильно обрабатывать, нужно ли новые end point строить?
Михаил
Привет, подскажите пж, может вопрос для кого-то банальный. Хочу организовать REST api, и столкнулся с проблемой, что нужно получать иногда данные раскрытые (populate), а иногда без populate
https://www.npmjs.com/package/api-query-params Если на ноде то вот В целом логика такая, у тебя на эндпоинт в query передается ?populate=some-field, ты все query запихиваешь в эту либу (или аналог на других языках), и передаешь как populate в свой запрос. Соответственно, если при запросе не передан - то populate не будет. Если передан - будет populate по полю
Михаил
Тоже самое про skip limit sort
Michail
CПС
Timur
Всем привет, подскажите плз запустил mongorestore и машинка загнулась по RAM, primary переехал на другой хост и теперь жрет 10ггб RAM как это пофиксить?
Timur
Timur
вопрос почему mongorestore сожрало так много памяти и как это исправить! чтобы заресторить без downtime?
Володя
Привет. Подскажите пожалуйста самодостаточное руководство/книгу на русском, чтобы вьехать за неделю и начать использовать mongo в связке с python/flask
Sergey
Кто-нибудь может подсказать по Realm GraphQL? Пытаюсь сделать CustomResolver с полнотекстовым поиском. На выходе имею такое:
Sergey
Есть идеи что я делаю не так?)
Sergey
Всё, разобрался, не правильный объект возвращался из функции. Фактически итерировало по полям объекта вместо массива.
Ярослав
подскажите пожалуйста что не так и как исправить?
Sanya
Всем привет Есть кто разбирается в IOS? У меня есть кластер в Atlas. Связал его с Realm и теперь стоит задача синхронизировать эти данные с устройством IOS. Несколько дней вожусь, не могу их получить Может может кто помочь с этим (не чистое решение проблемы, а именно разобраться в этом)? 😅
Mira
Ребят подскажите а как можно в aggregate сделать так. Достать элемент из массива, и сделать assign к корневому объекту ?
Mira
Ну допустим есть массив из объектов и нужно достать определенный элемент и присвоить его полю targetObj
Максим
По монге на русском очень старая есть. Монгодб в действии
Максим
На этом наверное и всё
Максим
Ещё есть Семь баз данных за семь дней
Максим
Ну или книги про твой стэк
yopp
Сюда запрещено выкладывать любой пиратский контент
yopp
подскажите пожалуйста что не так и как исправить?
Вам необходимо добавить официальный репозиторий от MongoDB Inc. в пакетный менеджер вашей ОС Инструкции для популярных дистрибутивов тут: https://docs.mongodb.com/manual/administration/install-on-linux/
yopp
Встроенного механизма нет, но вы можете самостоятельно его реализовать сделав отдельную коллекцию для счётчика, вручную читая и обновляя значение из неё. Но в большинстве случаев проще отказаться от этого требования и использовать ObjectId
yopp
Не нужная 🙂
yopp
Auto-increment это _очень_ дорого в sharded environment
yopp
В 97% случаев у таких полей нет никакого реального обоснования
yopp
Это просто прихоть инженеров
Ilya
так ведь не все шардируют, включили бы только для standalone и реплика сетов
yopp
Те, кому очень надо всегда могли это реализовать на atomic $inc
Alexander
Или с помощью редиса, например.
yopp
Редисом ещё куда-то ходить надо, а через чтение с помощью $inc в коллекцию со счётчиками можно и в монге делать
Alexander
Можно, да. Но редис как-то лучше для этого подходит. И быстрее.
yopp
Не быстрее 🙂
yopp
Эта операция на 99% состоит из network latency
Alexander
Я сравнивал. Приблизительно на два порядка. 🙂 Но это было очень давно...
Ilya
Сам сталкивался с такой необходимостью, знакомые, которые работают с монгой говорят тоже самое. Может, есть какие-то опросы или статистика, но на мой взгляд фича полезная и нужная.
yopp
Это ПТСР от табличных хранилищ 🙂
Alexander
У меня вот есть два таких. Но оба раза мы как-то справились...
Denis
Приведи пример его нужности.
пример slug в урле и в конец добавить номер, тк slug может быть неуникален
Ilya
Приведи пример его нужности.
Если бизнес-требования сформулированы конкретным образом, избежать этого сложно.
Alexander
пример slug в урле и в конец добавить номер, тк slug может быть неуникален
Просто айдишник впихивай и всё. ЧПУ сегодня никому не нужен.
yopp
а ещё лучше дату
Alexander
Если бизнес-требования сформулированы конкретным образом, избежать этого сложно.
Требования всегда можно и нужно обсуждать с бизнесом. Там тоже много заблуждений.
Alexander
мне нужен, красивее+ сео
СЕО на это пофиг. А то, что кому-то субъективно нравится, не может быть аргументом нужности какой-либо функциональности. Тем более такой, которая будет ломать всю систему.
Ilya
Требования всегда можно и нужно обсуждать с бизнесом. Там тоже много заблуждений.
Это совершенно не отменяет того факта, что такие условия возникают. К тому же не всегда получается прийти к идеальному консенсусу.
Alexander
Это совершенно не отменяет того факта, что такие условия возникают. К тому же не всегда получается прийти к идеальному консенсусу.
Если на стороне бизнеса люди адекватные, то можно всегда. А если неадекватные... ну тут как-то грустно.
Alexander
У меня вот есть требования законодательства по последовательной нумерации билетов в некоторых случаях... Это уже проблема другого порядка. Но она крайне редка и легко решаема.
Ilya
Дело в том, что бизнес-требования почти всегда сводятся к описанию конечной, готовой концепции продукта. В реальном мире коллекции данных, обладающие нумерацией натуральных чисел (1, 2, 3...) встречается повсеместно. Логично предположить, что в таком случае часто возникает и необходимость в авто инкременте.
Alexander
Вообще нет. Просто в легаси БД это было простым, крайне мало затратным, решением реализовать уникальный ключ. Бизнес тут вообще не при чём. Просто некоторые привыкли, что такое есть везде. В распределённых системах такое решение не работает никак, ибо требует глобальных блокировок.
Ilya
Ну к примеру, в текущей проекте у меня возникла такая необходимость. В системе существуют некие объекты, обладающие порядковой нумерацией. Причем это даже не прихоть бизнеса, это само по себе логично, природа объектов это подразумевает сама по себе. Для решения проблемы авто инкремента мне пришлось сделать _id кастомным, который состоит из префикса и как раз таки порядкового номера. Соответственно, при вставке нового документа, при конкурирующем write, если 2 человека будут добавлять 2 дока с одинаковым порядковым номером в айдишнике, неизбежно возникнет конфликт записи с одним документом, а другой добавится успешно. Я перехватываю ошибку, и запускаю функцию заново. Поймите, тут речь не о том, что это жизненная необходимость, без которой программисты не могут монгу использовать. Это просто та фича, которая бы сделала жизнь проще.