Vladimir
вы про лимит сортировки? если да то allowdiskuse надо указать
Я про основной pipe, относительно сортировки да, есть настройка, но по части агрегации в плане лимита в 100мб
Vladimir
https://www.mongodb.com/docs/manual/core/aggregation-pipeline-limits/#memory-restrictions
Vladimir
Относительно выборки данных для отчетов, я уже понял, что пора выгружать данные в другую бд и с ней уже работать
Andrey
На 10 рпс мб и нормально работает
Опять ерунда, около 30 млрд записей в базе, процесс монги и остальные в докере, запись постоянно stand alone. Или кластера из cassandra более 7 лет, машин в кластерах от 1 до 16, 120 точек инсталяций, все на докерах. И только у кого то в 2023 году - бд в докере - оверхеад. Ну реально смешно такое слышать.
Nick
Относительно выборки данных для отчетов, я уже понял, что пора выгружать данные в другую бд и с ней уже работать
это может быть более простым решением, хотя интересно узнать какие объемы данных и какого вида отчеты делаются
yopp
yopp
По поводу дисскусии про докер: У нас профессиональное сообщество построенное на принципе уважения и поддержки других участников. Прошу воздержаться от оценочных суждений и токсичного поведения. Самым надежным аргументом будут ссылки на сравнения. Например Percona в 2016 году публиковала такие выводы: https://www.percona.com/blog/measuring-docker-cpu-network-overhead/ https://www.percona.com/blog/measuring-docker-io-overhead/ https://www.percona.com/blog/testing-docker-multi-host-network-performance/ По ним видно что виртуальный сетевой стек через бриджи имеет достаточно весомую разницу с нативной сетью: 12-17% на гигабитном канале это 120-170 Мбит/с, это много. В других аспектах разницы нет. Интересно узнать как выглядит ситуация в 2023 году и на современных версиях ядра
Vladimir
Динамическая структура данных, условно схема объектов, в одной коллекции хранятся документы всех схем, при построении агрегации с lookup по порядка 7 внешним ключам и использовании facet падает ошибка лимита, в агрегации порядка 5 facet, после которых потоки объединяются и разматываются, и так примерно 5 раз с разной логикой внутри каждого потока facet
Vladimir
100мб достаточно большой лимит для пайпа. Подскажите, какой у вас кейс?
Примерно такой кейс, по сути выборка с джойнами и дообагащением данными с дальнейшей группировкой на выходе
Юлиан🦉
Привет, а какое может быть решение для текстового поиска по всем полям, типа elastic?
Nick
Привет, а какое может быть решение для текстового поиска по всем полям, типа elastic?
если на атласе, то atlas search, если не атлас, то просто text индекс. Подробности под https://www.mongodb.com/docs/manual/text-search/
Vladimir
с такими потребностями без предагргеаций везде будут проблемы. Гдето это будет денежный вопрос
Предагрегации в смысле декомпозиция на несколько обращений (запросов) к базе?
Nick
Предагрегации в смысле декомпозиция на несколько обращений (запросов) к базе?
в смысле подготовки данных соответствующим образом под запросы. например избавиться от всех джойнов и сделать плоскую таблицу - это первое что вам потребуется сделать при использовании любой бесплатной колоночной/таймсериес бд
Nick
и да фисксированной структуры
Nick
увы быстрая произвольная аналитика по данным с динамической структурой да еще и на бигдате это фантастика. Вообще для отчетов нормально полчасика в отложенном режиме, а то и денек
Desalutar
Как можно создать массив из enum в mongoose ?
Börke(МБорке)
друзья, мой код без проблем работает на другом порту, но когда не написано "MongoDB Connected" В чем проблема?
Börke(МБорке)
Nick
друзья, мой код без проблем работает на другом порту, но когда не написано "MongoDB Connected" В чем проблема?
какие же вырвиглазные интерфейсы люди юзают, что аж не ясно где что. Лог текстом на pastila.nl
Desalutar
😂😂😂
Нуриддин
Что ты имеешь ввиду под другой порт? Порт выходной программы или входящий монги
Desalutar
Не работает хук, с чем это может быть связано ?
Desalutar
Сломался
допустил элементарную ошибку, вместо стрелочной функции надо обычную использовать
Maksim
Помогите советом Есть монга 3.6 в ней база около 200гиг нужно перенести на монгу 4.4 Попробовал так mongodump --host=127.0.0.1 --port=27017 --username=reportdbadmin --authenticationDatabase=admin -p pass --out - | gzip -c | root@IP -p 22111 "cat > /mnt/dump/dump.gz дамп сделался, залился пробовал развернуть его так ``` mongorestore --host=127.0.0.1 --port=27017 --username=reportdbadmin --authenticationDatabase=admin --gzip --archive=dump.gz Ошибка 2023-11-30T17:26:31.361+0200 Failed: stream or file does not appear to be a mongodump archive нашел место, разархивировал архив он оказался 406 гиг и теперь у меня есть /mnt/dump/dump файл без расширения, это именно файл а не каталог. И теперь думаю что за нафиг
Maksim
дамп надо делать тоже с ключом archive
так mongodump --host=127.0.0.1 --port=27017 --username=reportdbadmin --authenticationDatabase=admin --archive | gzip -c | ssh root@IP -p 22112 "cat > /mnt/dump/dump.gz"
Nick
так mongodump --host=127.0.0.1 --port=27017 --username=reportdbadmin --authenticationDatabase=admin --archive | gzip -c | ssh root@IP -p 22112 "cat > /mnt/dump/dump.gz"
зачем еще гзиповать самостоятельно если есть встроенное сжатие ключом?
Maksim
я такой пример нашел
Maksim
мне передать его сразу на другой сервер по ssh нужно
Maksim
а то тут места мало на текущем
Nick
запустите дамп с того сервака где места достаточно
Nick
нет необходимости с локалхоста это делать
Maksim
🤔 а и правда )
ℨ ∀ Π ᖘ Ξ ₸ 🔥🖤
Привет. Подскажите плиз как такую ошибку пофиксить
ℨ ∀ Π ᖘ Ξ ₸ 🔥🖤
ℨ ∀ Π ᖘ Ξ ₸ 🔥🖤
ℨ ∀ Π ᖘ Ξ ₸ 🔥🖤
ℨ ∀ Π ᖘ Ξ ₸ 🔥🖤
когда нажимаю на открыть курс, то открывается курс с определенной карточкой, а когда редактировать, то тоже открывается определенная карточка
ℨ ∀ Π ᖘ Ξ ₸ 🔥🖤
логика и код почти одинаковые, но
Nick
Привет. Подскажите плиз как такую ошибку пофиксить
в ошибке написано что надо передавать
Anonymous
Привет. Подскажите плиз как такую ошибку пофиксить
Извиняюсь, что чуть не в тему разговора.... Подскажите пожалуйста кто через какие каналы рекламы сейчас свой бизнес продвигает???? Я раньше через инсту рекламировался, но чет совсем глухо стало
ℨ ∀ Π ᖘ Ξ ₸ 🔥🖤
при открыть курс крашится все, а при нажатии редактировать все ок
ℨ ∀ Π ᖘ Ξ ₸ 🔥🖤
в ошибке написано что надо передавать
делал, гуглил, даже ссылку могу скинуть, с утра сижу, ничего не работает (
Nick
делал, гуглил, даже ссылку могу скинуть, с утра сижу, ничего не работает (
тогда надо начать пользоваться логами и дебагером
ℨ ∀ Π ᖘ Ξ ₸ 🔥🖤
контент приходит, сайт рендерится с контентом
ℨ ∀ Π ᖘ Ξ ₸ 🔥🖤
но
ℨ ∀ Π ᖘ Ξ ₸ 🔥🖤
сайт потом просто крашится и при переходу на другую страницу сайт ломается
ℨ ∀ Π ᖘ Ξ ₸ 🔥🖤
код такой же как у второго роута, но первый почему-то странно ведет
ℨ ∀ Π ᖘ Ξ ₸ 🔥🖤
со вторым роутом все ок же (
ℨ ∀ Π ᖘ Ξ ₸ 🔥🖤
исправил
ℨ ∀ Π ᖘ Ξ ₸ 🔥🖤
спасибо
Ящик водки
У меня работает удаление, если я expireAfterSeconds ставлю например 5, и делаю просроченную дату и через 5 секунд удаляет, а через expireAfterSeconds 0 не работает, если ставить точную дату
не забывай, что процесс проверки протухания записей работает в фоне и имеет тайм-аут = 60 секунд. для этой задачи, если требуется строгое соблюдение времени протухания лучше использовать редиску например.
Ящик водки
кто в курсе, в 7.0.0 завезли возможность в транзакции r+w выполнять? или по-прежнему приходится делить на 2 запроса?
Desalutar
Как правильно реализовать модель корзины ? Создать отдельно корзину, где будет одно поле(user), а потом создать отдельно модель продукта корзины ?
Alexandr
Как правильно реализовать модель корзины ? Создать отдельно корзину, где будет одно поле(user), а потом создать отдельно модель продукта корзины ?
Кажется, что нет смысла делать отдельно продукты_корзины, у вас же нереляционная модель, можете сделать в корзине поле items, которое будет хранить например массив элементов, состоящих из поля product и quantity. Ну, а дальше уже в зависимости от требований решения подбираете
Alexandr
Дальше есть масса проблем других с тем, что именно вы помещаете в product. Если там будет просто id продукта, тогда нужно не забыть обработать сценарии, когда товар закончился после добавления в корзину или был удален вовсе. Если будете класть нужные поля продукта, такие как название, цена и тд, тогда не забывайте обновлять эти данные в корзинах, если в модели продукта произойдет изменение, например цены. В общем, нельзя сказать, как "правильно" реализовать модель корзины, зависит от ваших бизнес-требований
Aleksey
Добрый день. Необходимо добавить фильтрацию по полям при запросе из коллекции. 1. Я на уровне своего приложения обрабатываю какие поля пришли в запросе со значениями и через if добавляю их в финальный query, который и обработает MongoDB. Тут требуется отправки с фронта дополнительных полей для фильтрации, от 0 до 6ти по требованию (мой метод) 2. Вешаю текстосвый индекс на 6 полей аля так: db.orders.createIndex({ id: "text", customer : "text", kitchen : "text", delivery_address.city_street_building: "text", packer: "text", courier: "text" }, { name: "TextIndex" }) Чтобы поиск проходил по любому из ожидаемых полей. А тут с фронта можно ожидать только значение фильтрации (Предложил мой фронтендер) У меня есть мнение, судя по документации, что втрой способ по экспоненте будет нам руинить перфоманс тем больше, чем больше будет записей в таблице Нужно подтверждение или опровержение моей теории, спасибо :)
Aleksey
Добрый день. Необходимо добавить фильтрацию по полям при запросе из коллекции. 1. Я на уровне своего приложения обрабатываю какие поля пришли в запросе со значениями и через if добавляю их в финальный query, который и обработает MongoDB. Тут требуется отправки с фронта дополнительных полей для фильтрации, от 0 до 6ти по требованию (мой метод) 2. Вешаю текстосвый индекс на 6 полей аля так: db.orders.createIndex({ id: "text", customer : "text", kitchen : "text", delivery_address.city_street_building: "text", packer: "text", courier: "text" }, { name: "TextIndex" }) Чтобы поиск проходил по любому из ожидаемых полей. А тут с фронта можно ожидать только значение фильтрации (Предложил мой фронтендер) У меня есть мнение, судя по документации, что втрой способ по экспоненте будет нам руинить перфоманс тем больше, чем больше будет записей в таблице Нужно подтверждение или опровержение моей теории, спасибо :)
Ребят?
-
Добрый день. Необходимо добавить фильтрацию по полям при запросе из коллекции. 1. Я на уровне своего приложения обрабатываю какие поля пришли в запросе со значениями и через if добавляю их в финальный query, который и обработает MongoDB. Тут требуется отправки с фронта дополнительных полей для фильтрации, от 0 до 6ти по требованию (мой метод) 2. Вешаю текстосвый индекс на 6 полей аля так: db.orders.createIndex({ id: "text", customer : "text", kitchen : "text", delivery_address.city_street_building: "text", packer: "text", courier: "text" }, { name: "TextIndex" }) Чтобы поиск проходил по любому из ожидаемых полей. А тут с фронта можно ожидать только значение фильтрации (Предложил мой фронтендер) У меня есть мнение, судя по документации, что втрой способ по экспоненте будет нам руинить перфоманс тем больше, чем больше будет записей в таблице Нужно подтверждение или опровержение моей теории, спасибо :)
В вашем случае посоветовал использовать Elasticsearch
Aleksey
Я думал о нём, но пока нет ресурсов затягивать эластик
Aleksey
Технически такое количество индексов будет сказываться на производительности? И при вставке новых элементов монга перестраирвает существующие текстовые индексы?
Aleksey
Я понял, вообще эта коллекция одна из самых загруженных в приложении, там хранятся заказы пользователей с ресторана. Так что обновляться будут документы часто и их будет много. Спасибо)
Влад
Всем ку, есть такой вопросик - использую модуль 'nuxt-mongoose' в своем проекте nuxt 3. Но когда я пытаюсь посмотреть базу данных - то мне показывает следующее -
Влад
может ктонибудь сталкивался с такой проблемой ?
Влад