yopp
Даже если бы умело, то CoW делает всю идею с дедупликацей достаточно сомнительной
yopp
так как update операции будут приводить к освобождению страниц в случайном месте отражения хранилища в файловой системе
Кирилл
«расскажи мне про шардинг не говоря что это шардинг» 🤪
Ага. Множить сервера для такой задачи - не хотелось бы )
Дмитрий
Доброго времени суток, пишу тесты на jest и supertest для своего nodejs приложения (сервер на express), подключена БД mongoDB через mongoose. Мокаю каждый вызов к бд, но почему то когда мокаю вызов find и делаю запрос к express, этот find вызывается два раза, а не один (как и есть в обработчике). С остальными вызовами (findOne и т д) все в порядке. В чем может быть проблема? Тесты пишу первый раз и только учусь, если что то не так тыкните носом. https://gist.github.com/zl0i/3940f4566c70ab3f77c2e2f17a9b2812
Дмитрий
А почему не сделать отдельно коллекцию чатов, отдельно сообщений?
Дмитрий
Как вы себе представляете добавление нового сообщения в чат тогда?
Melonges
Есть смысл изучать команды самой бд (db.tratata….) или на практике достаточно изучить ODM (mongoose)?
WolderVsrat
Есть смысл изучать команды самой бд (db.tratata….) или на практике достаточно изучить ODM (mongoose)?
Так или иначе в документацию лазить придется, по сути почти все что у монгуса есть это и есть нативные методы. Прям таки сидеть изучать - смысла особо нет. Почитать обзорно - вполне можно, на практике все равно для редко используемых методов будешь лазить в доку
WolderVsrat
Ну, там совсем кратко. Лучше именно что доку смотреть. Она так-то очень понятная и часто с примерами.
WolderVsrat
У доки монгуса тоже так-то все неплохо. Но опять же, почти все что есть там это нативочка, помимо всякого сахара, типа моделей, валидации, хуков и тд..
Daniil
Есть смысл изучать команды самой бд (db.tratata….) или на практике достаточно изучить ODM (mongoose)?
Опять же не mongoose единым, зачастую он не нужен совершенно в небольших сервисах
Daniil
Да и в больших тоже далеко не всегда
WolderVsrat
Полностью от связей не избавиться, как правило, если монга как основная база - так или иначе будут минимальные связи Но да, если связей слишком много - то что-то идёт не так
Дмитрий
Я не думаю, что там какой-то хайлоад, где вы будете ощущать задержку от сбора записей из связанных таблиц. Наверняка это коллекции меньше миллиона записей, не парьтесь
MDWIT
Всем привет. Давно не работал с монгой и сейчас словил тупняк) Я добавил в модель новую колонку. Как мне теперь установить значение этой колонки в записях? Через update пробовал и для конкретной записи и для всех проставлять. Но что-то у меня вообще не выходит это сделать)
MDWIT
Разобрался, забыл об особенностях асинхронности в js 🙈
Al
Всем привет! Нужна помощь с aggregate. Нужен аналог elemMatch в запросе. То есть нужно выбрать в $project только тот элемент вложенного массива, который первый соответствует некоторому условию. Можно конечно $filter, но он выбирает несколько элементов. Структура типа такой { name: 'test1', media: [{ isActive: false, file: 'file1', isActive: true, file: 'file2'}]} нужен результат { name: 'test1', media: { isActive: true, file: 'file2'}}
I
Вопрос. А в монгодб можно создать виртуальную таблицу или переменную, которая будет видна на протяжении всего агрегированного запроса?
Александр
Добрый день. Подскажите пожалуйста, где посмотреть и узнать какие должны быть характеристики для сервера по размерам монги ? Если в день у меня наполняется по 200 мб. Сколько процессоров нужно и оперативки ?
Александр
Три профессора и один аспирант 👨🏻‍🎓
Окей, ссылки на хабр мб есть, какую еще информацию сказать ?
Александр
It нужно знать конфиг сервера для монги
Дмитрий
Окей, ссылки на хабр мб есть, какую еще информацию сказать ?
Да, тут говорить нечего. 200 МБ для современных компьютеров - это дело пары секунд. Если оно растянуто на сутки, можно хоть на калькуляторе запуститься
Александр
Есть статьи полезные ?
Viktar
Скажите пожалуйста, где взять эту информацию ? в Explain ?
Вам надо запустить приложение и посмотреть загрузку процессора, памяти. Эксплейн даёт план выполнения запроса, вам же надо посмотреть нагрузку
Дмитрий
Сколько оперативки ? Сколько процессоров ? Сколько жесткий диск итд?
Чего вы хотите, чтобы вам ответили? Написали же выше, что БД не только пишет, но и читает. Нагрузка по чтениями у вас, наверняка, будет превалировать при такой записи низкой.. На чтение и надо смотреть по нагрузке. Может быть как пол ядра, так и 32.. По памяти и жесткому также зависит от текущего размера БД. Прирост в 200 МБ к базе размером 1 ГБ и 1ТБ - это разные вещи..
Vladimir
о, тогда и у меня вопрос! Сейчас есть база, примерно 360гиг, прирост 20 гиг в месяц собираю стенд для шардинга, в целом вроде разобрался но заведемо может кто подскажет в правильную сторону иду или нет?! насчитал что шард разделим например на 3 части, итого 3 сервака с дисками по 300 плюс еще 6 для репликасета один mongos и один conf (тут я не оч понял пока какие у них должны быть параметры). итого 11 серверов так как тестовый стенд, у всех 2 ядра и 4 гига оперативки, при необходимости буду наращивать (опираясь на мониторинг)
Vladimir
типа спб, мск и остальное
Anonymous
подскажите пожалуйста я не работал с базами данных. написал небольшой проект с монгой и mongoose. у меня есть там модель PostMessage. теперь я решил добавить ещё сущность User. мне что прямо туда в базу мою ее кидать?
Nick
а есть сам пример объекта?
Nick
вот на это бы глазами глянуть
Nick
в названии филда наверное может
Nick
тут не подскажу, не занимался таким
Vladislav
так это невалидный жсон
Vladislav
ну а что за запятая в самом конце
Vladislav
10 грамм жсона? Я не понимаю что за 10г
Nick
видимо Gb
Nick
https://askubuntu.com/questions/876815/json-validator-in-ubuntu-16-04
Vladislav
зажмотил одну букву
Nick
чтонить подобное попробуйте и провалидируйте
Nick
всетаки ощущение что гдето либо символ вкрался какойто либо еще чтото
Nick
https://stackoverflow.com/questions/2583472/regex-to-validate-json
Nick
наверняка чтото прожует
Vladislav
напиши простой скрипт на 5 строк кода который попробует спарсить твой жсон
Vladislav
я думаю у тебя хватит оперативы
Vladislav
readFileSync try JSON.parse()
Vladislav
не уверен что жсон можно потоками парсить
Vladislav
ну я надеюсь у тебя мощный ноут)
Vladislav
давайте без этого
Лол, все равно никуда это не пойдет, для себя
Nick
это неконструктивно
Vladislav
я как бы ничего не спрашивал..
germon
Добрый день. Мне для учебного веб-приложения, нужно пользовать какие-то особые утилиты? Или я могу коннектить просто базу созданную в монго-консоли?
yopp
И это
yopp
Не привествуется в нашем сообществе
yopp
У нас проффесиональное сообщество в котором не принято токсичное поведение, личные оценки и любые предложения погуглить, разобраться самостоятельно или почитать документацию (без ссылки на конкретную страницу, где дан ответ на вопрос)
yopp
Ваше сообщение не отвечает на заданный вопрос и попадает под категорию «разбирайтесь сами»
yopp
Добрый день. Мне для учебного веб-приложения, нужно пользовать какие-то особые утилиты? Или я могу коннектить просто базу созданную в монго-консоли?
Зависит от того что вы хотите. Если вы хотите обращаться из вашего приложения в монгу, вам необходим драйвер для вашего языка, список официальных драйверов: https://docs.mongodb.com/drivers/ Если выбрать язык, там будет доступен туториал по подключению. Например для ноды: https://docs.mongodb.com/drivers/node/current/fundamentals/connection/ Если вы хотите получить доступ к монге, чтоб изучать данные, то самый простой способ это https://docs.mongodb.com/compass/current/ В любом случае вам потребуется или установленная локально монга (https://docs.mongodb.com/manual/installation/) или бесплатная пробная версия в облаке (https://docs.atlas.mongodb.com/getting-started/)
Richard
Ребят, а не подскажете, как грамотно в монге валидировать через джсон схему objectid и даты? (через bsonType вместо type, сори, вопрос снят)
Richard
Нет, все таки явно нужна помощь: хочу найти такие документы, у которых в определенном поле значение такое, что оно существует в другой коллекции в неком поле 1) это реально вообще? хотя бы через аггрегацию 2) если да, как сделать?