valkiki
значения соченила. суть есть CustomerId он у меня в бейз. а я хочу в uuid
valkiki
и create run и ссылку сюда
https://play.db-ai.dev/m/ZVd8o5OT-QABSaMY/edit?key=nZyU5gLIq8E посмотри плиз у меня ошибку пишет
Nick
https://play.db-ai.dev/m/ZVd8o5OT-QABSaMY/edit?key=nZyU5gLIq8E посмотри плиз у меня ошибку пишет
Customer id нужен в uuid виде значит. uuid нативный или в виде строки нужен?
valkiki
я не знаю как это парвильно кроме как uuid назвать
Nick
чтоб таким стал
это нативный uuid
Nick
над подумать
Mllse
в монге вроде нет такое понятие как типизации uuid
valkiki
BsonDefaults.GuidRepresentation = GuidRepresentation.Standard; не наю поможет ли колеги такое в коде юзали на шарпах. а я не знала и сделал просто по дефолту оно и в бейз превратилось. оттого не удобно когда глазами смотришь мне хоть старое заменить надо хоть новое поле но с нормальным отображением
Nick
чтоб таким стал
такс, он уже в бинарном uuid, так хранится во внутреннем представлении. Так что просто кастуйте при выборке из бд к соответсвующему типу uuid в драйвере
valkiki
не удобно именно смотерть и искать. попросили сделать. я с девопсом таокго напридумывать ен смогла. кроме как делать отдельно миграцию перещатав базу
valkiki
ну так бинарные типы они не для смотреть и искать, это только для работы из кода
вот а нужно смотреть опция. я могу код перещелкнуть на норм но сперва косяк испарвить нужно
valkiki
я видимо тупой. я думала монга как посгря и там скрипт легко написать
Nick
вот а нужно смотреть опция. я могу код перещелкнуть на норм но сперва косяк испарвить нужно
это не косяк, чтобы сконвертить надо на вашем драйвере написать скрипт которых сделает нужную рансформацию
valkiki
оки спасибки всем за помощь. напишу миграцию в коде. и прекрасных выходных
Danil
Ребят, а в монго можно удалить запись автоматически через определённое время?
Alexander
Нужно использовать перегрузку с конвейером. То есть вторым аргументом в метод нужно передать массив, а не объект. Есть пример на Stack Overflow.
Alexander
Вместо { $set: ... } Нужен [{ $set: ... }]
Garik
попробовал, спасибо большое, помогло)
Alex
Привет! Подскажите плз, добавляю в БД индекс, с одним все в порядке, а другой выдает ошибку const isExists = await collection.indexExists(`${index}_1`) if (!isExists) { await collection.createIndex({ [index]: 1 }, { unique: true }) MongoServerError: Index build failed: bef1d727-71ee-4f6c-ad3c-f8214470b328: Collection Test.sessions ( c609ad72-33e2-4aa3-b492-d908752e8c19 ) :: caused by :: E11000 duplicate key error collection: Test.sessions index: status_1 dup key: { status: 0 }
Alex
вывожу listIndexes() - там нет такого индекса
Nick
дубли документов
Alex
надо сначала дубли поудалять чтобы индекс уникальный создать
а, понял, у меня значения не уникальные, значит эта опция не нужна
Alex
я думал unique это уникальное имя индекса)
Человек
Привет всем
Человек
Пацаны где можно научится испотльзовать эту базу данных? В ютубе чтоли есть хорошее видео?
Kvhqm
Пацаны где можно научится испотльзовать эту базу данных? В ютубе чтоли есть хорошее видео?
Ну смотри, если ты хочешь начать что-то строить на монге, тебе нужно придумать тему проекта, или делать там, где ты сейчас делаешь. Нельзя просто так взять и учить монгу. А если думаешь наоборот, открой доку, и читай как книгу
Makar M.
Привет всем. Правильно ли я понимаю, что в монго записи после вставки попадают в журнал и буфер, и затем асинхронно сбрасываются на диск? Если в момент, пока запись в буфере я сделаю запрос на поиск этой записи, то может ли быть такое что она не найдётся пока не будет сброшена на диск?
Виктория
Кто сможет базу MongoDb создать за определённую плату? Напишите пожалуйста
thheakihiro
Это так сложно?
для людей, кто не читает документацию - да
I
Добрый день, может кто сможет подсказать в чём проблема Нода имеет одно подключение к монге Роут, который тестирую не делает ничего кроме запроса в бд При нагрузке на роут 1000 подключениями коннекшн к бд начинает сильно запаздывать Задержка цикла событий небольшая, ~30мс Задержка ответа на запрос уже 1300мс Как я понимаю, пул соединений полностью забит и новые запросы просто в ожидании освобождения сокета из-за чего и появляется такая большая задержка Никакие настройки PoolSize не исправили ситуацию Запрос не самый простой, с .populate() по id, коллекция индексирована
I
Clinic и autocannon
I
Знаю, что результат не может быть очень точным тк все идёт через одно железо одну сетевую карту и тд Но поведение в целом из таких тестов выяснить можно
Andrey
Пытаюсь сходу найти "требования" для сервера с mongos - не могу найти, сейчас гружу в dev кластер данные (примерно 4.7 TB), 3 день, и смотрю на график потребления ресурсов сервером с mongos - суммарно, до 1 GB RAM, да и про процессору, минимально, выделил 8vCPU - там даже до 5% не дотягивает. Есть ли какие требования, где посмотреть, или как соорентироваться по требованиям к железу для mongos
I
может база выполняет запрос за 1300
при той же нагрузке req/sec при 10 подключениях к ноде и так же одном подключении к бд нет проблем с задержками
Ivan
при той же нагрузке req/sec при 10 подключениях к ноде и так же одном подключении к бд нет проблем с задержками
если вы 1 раз подключились и потом посылаете кучу запросов , то конечно это будет быстрее чем каждый раз подключаться
I
если взять самый простой запрос и кучу соединений такая же проблема?
при простом запросе все в разы лучше, задержка ответа в 2.5 раза меньше, обьем req/sec кратно больше
I
если вы 1 раз подключились и потом посылаете кучу запросов , то конечно это будет быстрее чем каждый раз подключаться
я каждый раз не подключаюсь, в двух случаях нода имеет один коннекшн с бд разница в том, что я ноду гружу на 10 подключений и на 1000 в случае с простыми запросами проблем нет, существует задержка из-за занятости сокетов в пуле, но там и обьем запросов совсем другой в случае с более тяжелым запросом с populate картина прям намного хуже
Danila
Что за поле <@current> в документе создаётся при set + upsert?
yopp
но в целом да, может
yopp
ещё вот: https://www.mongodb.com/docs/v7.0/core/read-isolation-consistency-recency/
yopp
Пытаюсь сходу найти "требования" для сервера с mongos - не могу найти, сейчас гружу в dev кластер данные (примерно 4.7 TB), 3 день, и смотрю на график потребления ресурсов сервером с mongos - суммарно, до 1 GB RAM, да и про процессору, минимально, выделил 8vCPU - там даже до 5% не дотягивает. Есть ли какие требования, где посмотреть, или как соорентироваться по требованиям к железу для mongos
для mongos нужено меньше ресурсов чем для остальных нод, так как они не хранят данные, а только собирают и обрабатывают из с других нод. в зависимости от вида нагрузки, mongos могут быть cpu bound, если там много мержей или агрегаций. по памяти требования это примерно количество одновременно обрабатываемых запросов × размер буффера под эти запросы + размер коллекции с сессиями + размер карты шардов + размер буфферов под соединения + размер буфферов под служебную информацию 🙂 но теоретически угадать не получится, лучше смотреть на практике в целом под mongos нужно не самое требовательное железо
yopp
отмечу что на write-only нагрузке профиль нагрузки не совпадает с read/write, так как mongos просто маршрутизирует записи по шардам, а это очень дёшево
Магомед
Добрый вечер. На картинке изображены БД моего атлас кластера. Все эти БД активно используются. Скажите, может ли такое большое количество БД замедлять работу серверов, который используют этот кластер? Много БД в одном кластере - это плохо? Могу ли я создавать сколько угодно бесплатных кластеров? Для каждого проекта нужен свой кластер?
aliwka
Добрый вечер!Я новичок, и я пытаюсь разобраться с базойй данных. Тут вроде я создал хост но теперь как его можно подключить к сайту? Не могли бы вы подсказать или же поделиться с видео где обьясняют это?
Kenya-West
Что не так с this.invoiceFullModel.aggregate([ { $match: { external_id: { $in: objectIdArray } } }, // Match the provided InvoiceFull IDs { $lookup: { from: Collections.Contracts, localField: 'contract_external_id', foreignField: 'client_external_id', as: 'contract', }, }, { $unwind: '$contract' }, { $lookup: { from: Collections.Persons, localField: 'contract.client_external_id', foreignField: 'external_id', as: 'person', }, }, { $unwind: '$person' }, { $replaceRoot: { newRoot: '$person' } }, ]), Постановка задачи: даны айдишники invoiceFull'ов в массиве objectIdArray, по каждому надо получить по contract_external_id запись Contract, внутри него глянуть client_external_id и вытащить, наконец, модельку Person в ответе. invoiceFull.contract_external_id -> Contract.client_external_id -> Person Проблема в том, что по итогу выдаёт пустой массив. Пытался сократить цепочку и хотя бы получить Contract по ид InvoiceFull - тот же результат. NestJS, MongoDB, mongoose
Kvhqm
https://youtu.be/LNvmI8a9jwY?si=wmHLSaFj7EGmyc9N
Крутая база, но там нет аггрегации
Kvhqm
А это пипец как важно
C
MongooseServerSelectionError: connection 569 to 116.116.116.116:27017 timed out Вот такая штука переодически происходит, теряется связь с БД. При этом оба сервера вроде как стабильно работают. Простой перезапуск самой апки на ноде решает проблему. Кто может подсказать, как бы этот перезапуск автоматизировать либо же подкрутить конфиги подключения/образа бд
Nalik
Привет парни) А что лучше и быстрее, использовать select или проекцию? await db.ChatsUser.findOne({ user_id: socket.user.user_id, chat_id: chat_id, leave_time: 0 }, {chat_read_time : 1}) await db.ChatsUser.findOne({ user_id: socket.user.user_id, chat_id: chat_id, leave_time:0 }).select('chat_read_time')
Nalik
Это одно и тоже
Что результат один и тот же я понимаю, может под капотом в одном случае какие-то проверки есть и оно выполняется дольше, в другом случае нету. Но по крайней мере опытным путем разницы я не заметил)
Nalik
Понял, спасибо)
Dmitry
Добрый день. Подскажите, документ с полем какого типа данных будет быстрее всего возвращать метод find()? При условии, что для этого поля создан индекс
The_Immortal
Ребят, подскажите, пожалуйста, на show dbs ничего выводит, хотя базы есть - почему так может быть? Подключаюсь из-под рутовской системной учетки просто через команду mongo (пользователь и пароль неизвестны). Хотелось бы обойтись как-то без сброса пароля. Просто непонятно mongo вообще что делает и в качестве кого подключает? Версия 4.5.6.
Nick
Ребят, подскажите, пожалуйста, на show dbs ничего выводит, хотя базы есть - почему так может быть? Подключаюсь из-под рутовской системной учетки просто через команду mongo (пользователь и пароль неизвестны). Хотелось бы обойтись как-то без сброса пароля. Просто непонятно mongo вообще что делает и в качестве кого подключает? Версия 4.5.6.
либо прав нет либо других баз. mongo оно же сейчаc mongosh это просто терминал для отправки запросов и при подключении указываются данные юзера, если их не указали то он пытается подключиться в анонимном режиме. Если не настроена принудительная авторизация для всех подклчюений, то такое наверняка может происходить