Oleg
делай хэшед или текст индекс
Oleg
чтоб запихивать больше
Oleg
(ну и надо понимать, что это убьет перфоманс)
Anonymous
рубрика #людиработают
Aleksandr
может у них GMT+8
Aleksandr
или -8
Dima
(ну и надо понимать, что это убьет перфоманс)
странно что без особых костылей нельзя хранить длинные строки в sequelize есть специальный тип Text, в котором длина строки неограничена скорее всего, там подобный разбив строки, только абстрагирован от глаз юзера
Dima
может у них GMT+8
я в Киеве (10:42), праздники праздниками, но монго сам себя не выучит)
Oleg
рубрика #людиработают
нет, просто мы сидим уже готовые как минут 40
Oleg
а тут парень >1024 индексы делает
Oleg
как не помочь
AstraSerg
Всех с новым годом!!!
Nick
Всех с новым, используйте монгу с умом!!!
AstraSerg
NCR
С Новым кодом
Dmitriy
Всех с Новым Годом!
Гена
С Новым годом, коллеги)
Experimentalist
Sql это язык, а не модель данных. И в банках не одна задача
Да, я имел ввиду не SQL, а реляционную модель.
Ruslan
Но MongoDB относится больше к денормализованной модели?
https://docs.mongodb.com/manual/core/data-model-design/ можно и так и так. За редким исключением, я стараюсь нормализовать хранимые данные. $lookup уже достаточно быстр.
Experimentalist
Experimentalist
redis, memcached: я про такие.
Aleksandr
такие быстрее конечно
Ruslan
А с MongoDB используются побочные кеш-системы, или он настолько быстр, что это не требуется?
Лично у меня нет таких проектов и мне сложно представить юзкейсы, где это может быть полезным. Почему в таком случае не использовать один redis? :)
Nick
А с MongoDB используются побочные кеш-системы, или он настолько быстр, что это не требуется?
Монга как и любая бд хранит мастер данные, на основе которых наполняется кэш. Помимо этого кэши могут использоваться для хранения временной информации, которая может быть безболезнено утеряна во время рестарта/краша. Так что наличие монги даже на ссд не отменяет наличие кэшей, если их использование приносит реальную пользу, а не просто как дополнительный слой, который усложнит жизнь и добавит оверхеда и новые точки отказа
yopp
А с MongoDB используются побочные кеш-системы, или он настолько быстр, что это не требуется?
В 98% случаев вы добавив слой кеширования практически в любой базе данных добьётесь не ускорения, а огромного числа проблем.
Nick
Перехитрить кеш встроенный в хранилище очень сложная задача
Эт да, но я про другие задачи для кэшей, те же сессии хранить. Ну и если у нас на главной странице стата которая раз в пять минут обновляется агрегатами, то зачем на каждый чих базу дергать?
yopp
Агрегировать в другую коллекцию и оттуда таскать
Aleksandr
то нужно больше ресурсов вычислительных, чем просто по ключу готовые данные достать
Nick
хм, через отдельную коллекцию - хороший вариант и не нужно ничего левого тащить
Nick
А если агрегацией доставать, то что?
банально дорого по ресурсам может быть и скорее всего врядли труюется на столько актуальная инфомрация, то нужно для каждого показа страницы все пересчитывать
Ruslan
Ну так высчитывается относительно рпс, а не просто потому что агрегация затратно.
Nick
агрегация сама по себе омжет быть дорогая и обходить все данные
Murena
Подскажите что делать - пишет ошибку - corrupt object bson
Murena
вот кусок ошибки Error: corrupt object bson\n at deserializeObject (/api/node_modules/mongodb-core/node_modules/bson/lib/bson/parser/deserializer.js:552:11)\n at deserializeObject (/api/node_modules/mongodb-core/node_modules/bson/lib/bson/parser/deserializer.js:169:24)\n at deserializeObject (/api/node_modules/mongodb-core/node_modules/bson/lib/bson/parser/deserializer.js:192:22)\n
Murena
что то не гуглится такое
yopp
Вероятно ваш парсер не поддерживает какой-то тип, который возвращает монга
yopp
Попробуйте обновить ваши зависимости
Murena
это ошибка не в монге ? а на стороне бекенд кода ?
Murena
ясно гляну
Murena
я просто думал что это монга сбоит
Murena
Вероятно ваш парсер не поддерживает какой-то тип, который возвращает монга
подскажите а какая есть алтернатива под node.js чтоб проверить размер документа - сейчас использую npmjs.com/package/bson calculateObjectSize
Murena
но он начал сбоить в какой то из ситуаций
yopp
Про ноду не подскажу
yopp
В остальном размер документа это и есть размер bson получившегося в результате сериализации объекта
Murena
Так у тебя неоф драйвер. Может имеет смысл заюзать ‘mongodb’
я юзаю mongose для работы с монгой - и там устаревшая зависимость bson еще первой персии - а уже 4 вышла
Murena
в ней проблема
Murena
сейчас форкну и обновлю зависимость - может поможет
Murena
в самой бд пишет [conn250] Assertion: Location10320: BSONElement: bad type 80 src/mongo/bson/bsonelement.cpp 596 видимо все таки не в драйвере дело - повреждены данные наверное.
Murena
После mongod —repair , все заработало как нужно.
Yʉri 🇺🇦
Подскажите, как правильно мне определить vote в aggregate через addFields я пробовал .aggregate([ { $addFields: { vote: '$rate.0.vote' } } ]) но оно в итоге пустое
Experimentalist
Хочу спросить у тех, кто разбирается в проектировании архитектуры, как вы смотрите на модель, когда реляционная база данных является основным хранилищем, а Mongo используется для хранения сформированных документов JSON, которые в свою очередь хранятся в кеше с помощью memcached.
Nick
Хочу спросить у тех, кто разбирается в проектировании архитектуры, как вы смотрите на модель, когда реляционная база данных является основным хранилищем, а Mongo используется для хранения сформированных документов JSON, которые в свою очередь хранятся в кеше с помощью memcached.
Архитектура в отрыве от задачи не имеет смысла. нужно понимание объемов данных и их прирост, количества и типов ожидаемых запросов. Плюс пока не ясно что мешает в самой монге хранить все данные? Или если разговор за постгру, то там и json нормально хранится
Kenan
Есть однотипные данные и нужно реализовать, скажем так, "странички" как в экселе ( т.е. данные страниц должны быть обособлены друг от друга ). Я вижу два варианта: 1) В одной коллекции сделать объект, в котором key - название страницы, value - массив данных 2) Для каждой страницы сделать коллекцию в одной БД С первым - проблем нету. Со вторым возникает вопрос: при создании коллекции данные не обновляются ( которые по API идут ). Только после обновления файлов на сервере (???). Дёргаю названия таким образом ( 1 скрин ). Вопросы: 1) Какие есть ещё варианты реализации данного момента? 2) Если делать с помощью коллекций, то как сразу обновлённый массив коллекций получать? ( от коллекций мне нужны только имена )
Nick
Есть однотипные данные и нужно реализовать, скажем так, "странички" как в экселе ( т.е. данные страниц должны быть обособлены друг от друга ). Я вижу два варианта: 1) В одной коллекции сделать объект, в котором key - название страницы, value - массив данных 2) Для каждой страницы сделать коллекцию в одной БД С первым - проблем нету. Со вторым возникает вопрос: при создании коллекции данные не обновляются ( которые по API идут ). Только после обновления файлов на сервере (???). Дёргаю названия таким образом ( 1 скрин ). Вопросы: 1) Какие есть ещё варианты реализации данного момента? 2) Если делать с помощью коллекций, то как сразу обновлённый массив коллекций получать? ( от коллекций мне нужны только имена )
Делать отдельные коллекции на каждый лист не стоит. Если есть потребность хранить список страниц, то добавьте для этого коллекцию.
Kenan
т.е. сделать так: 1) Первая коллекция будет отвечать за данные ( как они будут храниться? как я описал или есть лучше варик? ) 2) Во второй коллекции будут названия страниц
Kenan
заранее спасибо за ответ и за уделённое время
Nick
т.е. сделать так: 1) Первая коллекция будет отвечать за данные ( как они будут храниться? как я описал или есть лучше варик? ) 2) Во второй коллекции будут названия страниц
Сложно советовать, у вас реально экселевкие таблицы? И данные только для отображения или по ним будут упоротые запросы по отдельным колонкам?
Kenan
Сложно советовать, у вас реально экселевкие таблицы? И данные только для отображения или по ним будут упоротые запросы по отдельным колонкам?
Отображение, возможность редактировать каждую строчку таблицы ( т.е. объекта ), и обновление некоторых полей
Kenan
клиент просто попросил сделать "возможность иметь страницы, в которых можно хранить данные ( они могут повторяться на разных страницах )"
Nick
ну импорт идёт из экселевской таблицы
Количество строк и столбцов лимитировано?
Kenan
а
Kenan
стоп
Kenan
количество столбцов лимитировано, а количество строк - нет
Kenan
В среднем, в одной таблице будет по 7-8к записей
Kenan
данные примитивные: фио, номер, код ( генерируется ), дата добавления, статус, дата закрытия
Nick
У монги в один док не больше 16мб данных можно запихнуть. Поэтому это нужно заранее чекнуть
Nick
Поиск будет по этим данным?