Р
че то не фига не привязвается
Р
Р
как было 0 эелементов так и есть
Максим
здравствуйте, имеется такая схема могу ли я как то при find добавлять к ответу данные о пользователе из authorID? например, добавить поле authorData: {...}, где ... - данные какого-либо юзера из UserSchema (которому соответствует authorID)
Максим
интересует именно реализация монгой
Максим
полагаю, что это будет какой-то подзапрос
Максим
populate
о, спасибо)
Максим
до вашего ответа нашел lookup, сначала думал про него спросить, но, видимо, populate в mongoose - прокачанная версия lookup
Cloud
урезанная ты хотел сказать?
Максим
урезанная ты хотел сказать?
у mongoose так написано
Максим
мне почему-то кажется, что lookup мне больше подходит
Максим
сейчас проверю
Google
В mongodb есть сжатия json при передачи ? На frontend ?
Google
🆘
Google
??? Help
Евгений
Шо мля?)
Nick
В mongodb есть сжатия json при передачи ? На frontend ?
если под фронтендом понимается сторона веб браузера - то это зависит от того как вы настроите ваш бэкенд и к монге это не имеет отношения. Проверить можно проверив хедеры на клиенте. Если именно монга - то монга общается с прикладом по бинарному протоколу реализованому в драйвере, это уже дает достаточный выигрыш в объеме данных и доп сжатие (flatten/gzip/etc) не треубется.
Ilya
Подскажите, насколько я понимаю, на уровне коллекции, у каждого документа есть _id, стоит ли его использовать в качестве id объекта или использовать дополнительное UUID-поле?
Alexey
Тут всё толково расписано
Ilya
Спасибо.
Артём
Всем привет, резко выросло количество коннектов к монге в атласе, подскажите, с чем может быть связано если в коде все ок?
Ilya
А в монге нельзя создать кастомный тип? Так как у меня в коллекции есть проперти(объект) с максимальной вложностью где-то 5. И при чем эти вложенные объекты тоже не маленькие, и такое же проперти может использоваться в другой коллекции, хотелось бы просто создать свой тип, что бы не писать в декларации каждой коллекции огромную портянку.
Данила
Данила
Забаньте
4R7
как задать такой объект chatlist: [ { channelname: {type: String, default: "frontend"}, channelid: {type: String, default: "619a6bfe5b0931f1e5dbaf2c", ref: "Chat"} }, { channelname: {type: String, default: "backend"}, channelid: {type: String, default: "619a71002954ba23a951bb8f", ref: "Chat"} }, { channelname: {type: String, default: "devops"}, channelid: {type: String, default: "619d69c190a85a40893b6522", ref: "Chat"} }, ] чот не работает...
4R7
т.е. мне нужно массив из объектов внутри которого будет channelid ссылающий на коллекцию чатов, но при этом мне надо 3 дефолтных состояния ...
Peter
Привет всем! А подскажите, есть какой-то у монгодб веб-интерфейс, похожий на https://github.com/mongo-express/mongo-express но живой?
Ilya
А как делать миграцию, если у меня валидация на коллекции?
Yaroslav
Товарищи привет. Скажите пожалуйста, у кого был опыт работы с атласом? У нас проблема, что на self hosted бд у нас очень огромный ops, хотя мы все оптимизировали (индексы добавлены, используются bulk операции), но видно что у нас скаладывается потребность в облачном решении, с возможность мониторинга и дальнейшего масштабирования, но 5сть опасения, что можем попасть на деньги. Вопрос, сильно ли помогают инструменты мониторинга атласа для оптимизации запросов в бд?
Yaroslav
А как делать миграцию, если у меня валидация на коллекции?
Миграция должна записывать уже валидированные данные, валидация должна работать только при работе бизнес логики
Ilya
Миграция должна записывать уже валидированные данные, валидация должна работать только при работе бизнес логики
Я, видимо, неправильно выразился, у меня есть валидация на коллекции, но я хочу добавить новое поле, как это сделать? Что-то вроде ALTER из sql.
Kirill
Подскажите, как получить данные из 2ух коллекций один запросом? Нужно получить по ключу запись коллекции + получить записи из другой коллекции этого ключа
Yaroslav
Я, видимо, неправильно выразился, у меня есть валидация на коллекции, но я хочу добавить новое поле, как это сделать? Что-то вроде ALTER из sql.
Добавь поле а саму схему на том языке программирования на котором пишешь, поле автоматом добавиться в бд
Yaroslav
Если тебе нужно при том и заполнить дефолтными значениями, то напиши миграцию (достаточно просто запрос на обновление 1 поля во всех коллекциях)
Ilya
Добавь поле а саму схему на том языке программирования на котором пишешь, поле автоматом добавиться в бд
Понял, спасибо, а я думал, что валидация происходит для всего документа, а не только для существующих полей.
Алекс
ребят помогите плиз, пытаюсь заюзать вот это https://www.digitalocean.com/products/managed-databases-mongodb/ по этой инструкции https://docs.digitalocean.com/products/databases/mongodb/how-to/connect/ но у меня приложение в контейнере, и получает строку подключения через ENV (Dokku устанавливает на этапе сборки) так вот проблема в том, как передать правильный путь к файлу сертификата типа такого dokku config:set my_app MONGO_URL="mongodb+srv://mongodb:pass@path_to_server?authSource=admin&replicaSet=dev-mongo&tls=true&tlsCAFile=/root/dev-mongo-ca-certificate.crt" приложение в контейнере и естественно не видит файл(он на хостовой машине) не в контейнер же сертификат пихать? че придумать?
Eva🇺🇦
а монго дб автоматом коллекцию создает, когда мы что-то в нее вставляем?
Yaroslav
а монго дб автоматом коллекцию создает, когда мы что-то в нее вставляем?
Не монга а скорее инструмент которым ты пользуешься, к примеру mongoose
4R7
как задать схему правильно? const schema = new mongoose.Schema({ login: {type: String, unique: true, required: true}, password: {type: String, required: true}, chatlist: [ { channelname: {type: String, default: "frontend"}, channelid: {type: String, default: "619a6bfe5b0931f1e5dbaf2c"} }, { channelname: {type: String, default: "backend"}, channelid: {type: String, default: "619a71002954ba23a951bb8f"} }, { channelname: {type: String, default: "devops"}, channelid: {type: String, default: "619d69c190a85a40893b6522"} }, ] })
4R7
Aʙduxᴀlilᴏv ☾
Доброй ночи всем. У меня есть задача прочитать экзель файл и все данные внести в бд. У меня в среднем 3-4к записей в экзел файле, но это занимает много времени 3-7минут. Есть ли какие нибудь способы сократить это время?
Мирослав
Привет, у меня есть endpoint который изменяет mongoDB, возникает проблема когда этот endpoint вызывается 2 раза с минимальной задержкой - появляется ошибка "No matching document found for id \"...\" version ... modifiedPaths \"...\"". Если между запросами есть достаточный таймаут, то все ок. Есть ли возможность это предотвратить, возможно с помощью инструментов mongoose, или только контролировать частоту запросов с фронтенда?
Eshu
Товарищи, подскажите, а есть ли какие-то лимиты на максимальное количество коллекций?
Мирослав
а у вас реплика или single node? может не успевает отработать синхронизация при write concern enabled?
1. Если правильно понял, то single node. 2. Может. Можно это как-нибудь исправить?
yopp
Товарищи, подскажите, а есть ли какие-то лимиты на максимальное количество коллекций?
Можно сказать что нет. Есть ограничение на длину namespace: (имя бд + имя коллекции) 255 байт для 4.4+ 120 байт для более ранних При этом длинна имени базы данных не может превышать 64 байта В этом документе описаны все ограничения: https://docs.mongodb.com/manual/reference/limits/#mongodb-limit-Restriction-on-Collection-Names
Eshu
То есть если запилить 1000-2000 коллекций - это норм?
Aʙduxᴀlilᴏv ☾
Доброй ночи всем. У меня есть задача прочитать экзель файл и все данные внести в бд. У меня в среднем 3-4к записей в экзел файле, но это занимает много времени 3-7минут. Есть ли какие нибудь способы сократить это время?
Belgian
Я сначала читаю экзель и через цикл делаю инсерт в базу
Думаю, что в вашем случае основное время уходит на цикл а не на запись в базу. эксель чем читаете?
Viktar
Я сначала читаю экзель и через цикл делаю инсерт в базу
Ваш вариант тоже норм. Используйте batch для инсертов. Тоже ускорит процесс
Viktar
Сори. Балк. https://docs.mongodb.com/manual/reference/method/Bulk.insert/
Відьма🐝👈
Здравствуйте. Подскажите, могу ли я найти/удалить как-то запись в базе данных имея только ключ?
Відьма🐝👈
{"1":"Один"} "1" - ключ
Дмитрий
Народ, подскажите, почему фильтр по дате ведёт себя так странно:
Дмитрий
Відьма🐝👈
Дмитрий
Р00-👨🏻‍💻Михаил
new Date(‘2021-01-01’)
Р00-👨🏻‍💻Михаил
просто ‘2021-01-01’ - это строка
Р00-👨🏻‍💻Михаил
Потому оператор сравнения не срабатывает
Р00-👨🏻‍💻Михаил
Ах бля