Zaff
A это таймштамп updatedAt, если объект последний раз обновлялся раньше, чем 1 января, нужно считать, что он обновлялся последний раз 1 января
а следующее условие сравнивает разность дней между updatedAt и сегодняшней датой, и если разность равна n-дням, то апдейтим конкретное поле в документе
updatedAt всегда должен быть минимум 1 января
Zaff
Учитывая, что документов этих не так много, наверное можно просто получить все документы по первому условию, бежать по ним циклом в самом JS, и апдейтать по одному
yopp
Nurik
Всем привет ! Когда драйвер монги (для nodejs например) обращается в монгу, он достает данные которые были сжаты snappy или это уже не сжатые данные ?
Nurik
Просто пытаюсь понять на каком уровне работает сжатие, только на уровне хранения, или на уровне транспорта тоже
yopp
yopp
Сжатие документов происходит в хранилище. Даже в кеше в памяти они в несжатом виде.
yopp
В 3.6, кажется, появилась поддержка сжатия на транспортном уровне, при условии что драйвер это поддерживает
yopp
Даже не документов, а страниц wt в хранилище
Nurik
Nurik
Я имею ввиду реализация драйвера для монги согласно протоколу
yopp
Afair, нет https://github.com/mongodb/specifications/blob/master/source/compression/OP_COMPRESSED.rst
yopp
that SHOULD be provided to isMaster if a driver supports wire compression
Nurik
yopp
А зачем вам?
Nurik
Почитаю )
yopp
В каком плане «проседает»?
Nurik
На уровне tcp пытаемся понять что происходит
Nurik
Повторение трафика пока не помогло выявить проблему
yopp
Nurik
Версия 3.6
yopp
В остальном, следите за
serverStatus:
connections, особенно connections.totalCreated (если резко увеличивается, но active не меняется, значит кто-то переустанавлмвает соединения)
globalLock, особенно totalTime
network
opLatencies
opCounters
И ещё можно metrics
Nurik
Nurik
Окай, в общем дальше сам разберусь, спасибо !
Anonymous
Добрый день, кто может поделиться советом:
Сейчас нужно будет писать микросервисы, может порядка 30, практически везде хочу юзать монгу.
Хочу применить паттерн:
database per service
Сервисы думаю пока не высоконагруженные и потеря данных не прямо очень критична.
Каким образом можно построить базы, оптимизировав при этом ресурсы?
- На mongodb atlas выходит дороговато
- В gcloud тоже
- в do нет managed mongodb
Нормально ли будут решения:
- Деплоить базы прямо в кубе (что по расходам будет гораздо дешевле)
- Создать одну большую виртуалку, где монги в докере.
Кто каким советом мог бы выручить, буду очень признателен
yopp
yopp
самому деплоить будет дороже
yopp
в целом TCO монги в облаке до определённого уровня будет ниже чем деплоить и поддерживать самостоятельно
yopp
определённый уровень это сотни гигабайт
Anonymous
Речь о базах [1-2ram/1cpu/30-50ssd]
Anonymous
atlas или yandex cloud
В общем насколько понял точку зрения, managed дороже в разы, но в перспективе с точки зрения поддержки и масштабирования выгоднее
yopp
а это не важно
yopp
yopp
вы на то чтоб раскатать монгу в кубе потратите больше ресурсов, чем нажать две кнопки в атласе
yopp
не говоря уже о резервном копировании и прочих мелочах
Anonymous
Хорошо, спасибо за информацию :)
yopp
начните с маленького тарифа в атласе. там апгрейды достаточно легко проходят
Андрей
Привет!
Я вот не пойму.
Если я создам документ картинки {url: '/img', id: '1', alt: 'alt'} схемой
Image, то создастся коллекция images и в ней будет этот документ к примеру.
А если я создам еще такой же документ и положу его в другой документ, то этот документ новосознанный картинки будет лежать в и другом документе и в коллекции images ?
Araik
Можно делать update с опцией upsert
Araik
тогда при наличии документа, он будет обновлять документ, при отсутствии добавлять
yopp
yopp
Добавить индекс с uniq constrain
yopp
На те поля, по которым вы хотите избегать дубликатов
Андрей
Anonymous
Ребят привет. подскажите плиз. обезательно ли делать авторизацию на mongod на linux, или можно не авторизироваться? вопрос по поводу безопасности
Anonymous
у меня сейчас без авторизации mongodb://localhost:27017/mydb
yopp
Anonymous
Обязательно
логин и пароль будет достаточно? просто там много видов авторизации
yopp
Anonymous
Да, достаточно
а скажи пожайлуста может ли кто нибудь без авторизации как то воздействовать на бд из вне?
yopp
Для администрирования и для приложений по возможности используйте разные учетные записи с разными паролями
Sergey
yopp
yopp
И можно будет сделать всё что угодно
Anonymous
yopp
Даже если монга будет слушать на локальном интерфейсе, это не панацея, так как любое ПО на этом-же хосте имеет доступ к локальному интерфейс у
Anonymous
yopp
ну на локалке она
А не важно. В вашу локалку может попасть вредоносно ПО, которое найдёт монгу и в лучшем случае просто удалит все данные и будет вымогать денег. А в худшем это все куда-то утечёт
yopp
Это невозможно без индекса или внешнего механизма проверки уникальности всего документа
Sergey️
Монга в докере решила начать жрать CPU как не в себя
100%+
Из запросов только findOne, 300к документов.
В db.currentOp ничего долгого не вижу, логи отправляются в devnull
Как лечить?)
yopp
Sergey️
Sergey
yopp
4.2.3?
Sergey️
Sergey
Sergey️
yopp
4.2.0
Обновитесь до 4.2.3
yopp
Плюс у вас там 750к соединений. Это действительно так?
yopp
И connectionsCreated 34
Sergey
А кто-то встречал инструмент (бесплатный), который позволяет делать из Монго Дашборды? Не такие сложные, как Графана и Прометей?