Kirilll
Всем привет кто сможет подсказать значение поля i в данном блоке у монги?
yopp
Всем привет кто сможет подсказать значение поля i в данном блоке у монги?
это increment, «произвольный» счётчик внутри временной отметки t https://www.mongodb.com/docs/manual/reference/bson-types/#timestamps https://bsonspec.org/spec.html
Илья
кто то делал пагинацию для mongoose плагин или лучше всегда руками делать ?
Амир
.limit().skip() ?
нельзя скип юзать. просто gte(prev._id).limit()
Асель
Всем привет! Подскажите пожалуйста, можно ли как-то в шардированном кластере влиять на то, какой шард монга выбирает как primaryshard для БД при ее создании? Или только через movePrimary? Хочется новую БД вынести в отдельный шард, но не хочется, чтобы там создавались еще какие-то БД в будущем
Амир
почему нельзя ?
прочитайте как он работает
Иван
почему нельзя ?
есть понимание почему нельзя?
Иван
я вот тоже не понял
Иван
нельзя скип юзать. просто gte(prev._id).limit()
речь про курсорную пагинацию?
Maxmudjon
есть понимание почему нельзя?
Да, оказывается монго при skip читает все документ, если у нас 10.000.000 document это уже плохо
Иван
а в других бд, например постгрес, не так?
Иван
проблема курсорной пагинации в том что нельзя просто так взять и перейти с 1ой страницы на 5ую
Maxmudjon
а в других бд, например постгрес, не так?
Постгресе база же табличные же, система берёт и прыгает нужный строка
Иван
к сожалению нет
Maxmudjon
да ?
Иван
она тоже вынуждена все 10.000.000 записей по фильтру вынуть, отсортировать, и взять только 10 с конца
Andrey
Иван
Если есть кластерный индекс
Nick
почему нельзя ?
скип-лимит создаст проблемы на больших выборках в любых бд. В этих случаях стабильнее работает вариант предложенный выше, но у него тоже есть свои проблемы. Вообще выбор способа реализации пагинации требует продумывания и тестов, вплоть до реализации одновременно нескольких вариантов в зависимости от параметров.
Иван
Можно не давать пользователю листать дальше n-ой страницы
Vladimir
нельзя скип юзать. просто gte(prev._id).limit()
Как вы это используете? Передаёте параметром?
Andrey
Как вы это используете? Передаёте параметром?
Если примитивно, запоминаете _id документа который последний в первой странице, передаете его на бэк.
Eva🇺🇦
привет подскажите, пожалуйста, как сейчас можно законнектиться к базе 3.6 версии? монгош - минус, компас - минус
Kenya-West
Всем привет! Есть ли какой-то инструмент визуального проектирования схем в MongoDB? С экспортом в схемы mongoose и DTO. Пишу на NestJS
Kenya-West
Microsoft Access это делать не умеет (((
Kenya-West
https://hevodata.com/learn/mongodb-schema-designer/
Спасибо! Ничего из этого не умеет экспортировать в класс TypeScript с нативными ECMAScript-декораторами из пакета @nestjs/mongoose. Эх, буду дальше по-старинке в коде писать...
El
Есть такое, что при логине в Atlas получаем "A server error occurred. Please try again in a minute"? Долго уже, VPN, через Compass БД доступны.
Dmitriy
Всем привет. Не можем найти у себя в стране DBA по MongoDB, решили воспитывать своего. Есть ли стоящие курсы?
Иван
мужики, поиском не нашёл релевантного ответа. были у вас проблемы с долгим подсчётом общего количества элементов по фильтру? происходит когда нужно сделать постраничный поиск элементов, страницу в 12 элементов выдаёт быстро, а вот считает общее количество долго, порядка 15 секунд. К сожалению фильтр динамический, состоит из 15 полей, которые могут прийти в любом сочетании, и индексы на всё повесить не получится. Может кто то решал подобное, поделитесь.
Иван
Если фильтр пустой, соответственно нужно показать все
Иван
Ну делим на размер страницы
Иван
Но скорее всего без костылей проблему с подсчетом общего количества элементов не решить)
Иван
Общее количество элементов по фильтру считает 15 секунд
Иван
Показать пользователю сколько страниц найдено по фильтру
Кирилл
Всем Доброго Дня! Очень нужен Ваш совет. Есть реплицированный кластер mongo 5.0.8 ce, суммарно вес всех баз в нём 500гб. Необходимо каждый день снимать полный бэкап и восстанавливать на резервном кластере . Mongorestore восстанавливает очень медленно , от 9 часов . Ставил рядом агенты percona, но логический бэкап восстанавливается пример столько же ( да, я понимаю что суть почти такая-же как mongodump и mongorestore , но надеялся на чудо за счет агентов) . Мб подскажите инструмент или способ ?
М.А
Всем привет А подскажите, квери аналайзер не показывает как лукапы делаются в "углюбленных" местах То есть у меня пайплайны » лукап » внутри него другой лукап » внутри другой лукап allPlansExecution, executionStats не показывает какой там Winning Plan у вложенного лукапа Это можно как то посмотреть ?
Dartsta
Всем привет! Есть база с 3к коллекциями. Примерно на 1.8Тб в общей сумме. Драйвер motor, пул сессий стоит None. Поиск ведется по асинхронному запросу к каждой базе для 1 пользователя. Поиск ведется по индексируемым полям, покрывающий индекс не построить. При нагрузке от 20 пользователей появляется ощущение, что запросы встают в очередь, хотя поиск должен идти по самой долгой коллекции (около 2х секунд максимум), но бывает до 20 минут. Есть идеи с чем может быть связано? Оперативной памяти 1,5 ТБ, монга использует до 10%, лимиты не стоят . С процессором тоже нет проблем.
Abdurazzoq
Всем привет! Есть база с 3к коллекциями. Примерно на 1.8Тб в общей сумме. Драйвер motor, пул сессий стоит None. Поиск ведется по асинхронному запросу к каждой базе для 1 пользователя. Поиск ведется по индексируемым полям, покрывающий индекс не построить. При нагрузке от 20 пользователей появляется ощущение, что запросы встают в очередь, хотя поиск должен идти по самой долгой коллекции (около 2х секунд максимум), но бывает до 20 минут. Есть идеи с чем может быть связано? Оперативной памяти 1,5 ТБ, монга использует до 10%, лимиты не стоят . С процессором тоже нет проблем.
Привет, в этот момент советую посмотреть currentOps И взять query операции который висит долго, потом когда нет никаких операции, попробовать вручную запустить этот запрос, если операция завершится быстро чем тот раз, то точно узнаем что проблема не в индексации И можем посмотреть на другие моменты
Abdurazzoq
Просто моем опыте была такая же история, но тогда оказался проблема в запросе
Andrey
Подскажите, какие варианты решения данной проблемы есть? Есть 2 функции, в каждой есть подключение к бд, взаимодействией с ней, отключение. Каждая функция запускается раз в 10 секунд из-за разной скорости взаимодействия функций с бд, получается так, что первая функция закрывает своей подключение и подключение другой функции, из-за чего вторая функция не может взаимодействовать с бд.
Andrey
MongoDB подключена MongoDB подключена Найдено 153 уникальных addressPair Получено пар из Meteora: 1198 Ошибка: MongoNotConnectedError: Client must be connected before running operations Общее время выполнения скрипта: 6.073s MongoDB подключена Ошибка: MongoNotConnectedError: Client must be connected before running operations at autoConnect (/Users/code/node_modules/mongodb/lib/operations/execute_operation.js:95:19) at executeOperation (/Users/code/node_modules/mongodb/lib/operations/execute_operation.js:38:40) at Collection.distinct (/Users/code/node_modules/mongodb/lib/collection.js:482:63) at NativeCollection.<computed> [as distinct] (/Users/code/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:244:33) at model.Query.__distinct (/Users/code/node_modules/mongoose/lib/query.js:2926:5) at model.Query.exec (/Users/code/node_modules/mongoose/lib/query.js:4456:80) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async calcPreviuosVolume (/Users/code/solanaBuySpot/src/services/getDataDB/CalcVolume.js:16:32) at async Task._execution (/Users/code/solanaBuySpot/src/index.js:12:24) { errorLabelSet: Set(0) {} }
Andrey
MongoDB подключена MongoDB подключена Найдено 153 уникальных addressPair Получено пар из Meteora: 1198 Ошибка: MongoNotConnectedError: Client must be connected before running operations Общее время выполнения скрипта: 6.073s MongoDB подключена Ошибка: MongoNotConnectedError: Client must be connected before running operations at autoConnect (/Users/code/node_modules/mongodb/lib/operations/execute_operation.js:95:19) at executeOperation (/Users/code/node_modules/mongodb/lib/operations/execute_operation.js:38:40) at Collection.distinct (/Users/code/node_modules/mongodb/lib/collection.js:482:63) at NativeCollection.<computed> [as distinct] (/Users/code/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:244:33) at model.Query.__distinct (/Users/code/node_modules/mongoose/lib/query.js:2926:5) at model.Query.exec (/Users/code/node_modules/mongoose/lib/query.js:4456:80) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async calcPreviuosVolume (/Users/code/solanaBuySpot/src/services/getDataDB/CalcVolume.js:16:32) at async Task._execution (/Users/code/solanaBuySpot/src/index.js:12:24) { errorLabelSet: Set(0) {} }
Вот такие логи дает, говорит, что подключения к бд нет, при этом если запускать функции отдельно друг от друга, то все ок
Andrey
Ну так не закрывайте коннект в базе
просто открыть подключение к бд перед вызовом функций и из самих функций подключение/отключение убрать?
izy
Просто моем опыте была такая же история, но тогда оказался проблема в запросе
Случайная выборка по части коллекций показывала результаты в приделах нормы. Работает через индексы, время исполнения в приделах 20мс. Смотрел эксплейном
Гена
привет Никак не могу понять как снимать дамп с шардированного кластера у перконы Агенты стоят на всех нодах Снимаю логический бекап с сервера конфиг сервиса а вот раскатывать как? Подскажите пожалуйста
М.А
Ребята привет Получаю Cursor not found ошибку на сервере , не смог реплицировать ошибку локально Может кто сталкивался Локально запросы ранятся быстро, не понимаю что там на сервере не там Я подключаюсь к тем же ресурсам (например вторичный шард, не главный)
Evgeniy
Почему могут не удаляться старые записи { v: 2, key: { _id: 1 }, name: '_id_' }, { v: 2, key: { createdAt: 1 }, name: 'createdAt_1', background: true, expireAfterSeconds: 2592000 } ]
Nick
Почему могут не удаляться старые записи { v: 2, key: { _id: 1 }, name: '_id_' }, { v: 2, key: { createdAt: 1 }, name: 'createdAt_1', background: true, expireAfterSeconds: 2592000 } ]
значит время еще не пришло. В первую очередь проверяйте часовые пояса. И надо смотреть какой самый старый документ
Evgeniy
createdAt: { type: Date, default: Date.now, expires: '30d' } вот так делал
OZOD
раньше было кнопка Data API сейчас в обновление не могу найти если кто ни будь знает пожалуйста подскажите как получить как получить API URL в mongodb atlas
OZOD
Это ищешь?
https://www.mongodb.com/docs/atlas/app-services/data-api/generated-endpoints/#set-up-the-data-api
OZOD
эту
OZOD
https://data.mongodb-api.com/app/<App ID>/endpoint/data/<API Version>
OZOD
ну такой должен быт