Danil
yopp
на shared тарифах: бесплатном (M0) и M2/M5 $function запрещён 🙁
yopp
https://www.mongodb.com/docs/atlas/reference/free-shared-limitations/#operational-limits
JavaScript: M0 free clusters and M2/M5 shared clusters don't support server-side JavaScript. For example, $where and map-reduce are unsupported.
Danil
Andrey K.
Друзья, вопрос такой. Вижу кашу (на мой взгляд) в правах на разных инстансах на папке journal
версия 3.4
drwxrwxr-x реплика
drwxr-xr-x праймари
версия 3.6
drwxrwxr-x реплика
drwx------ праймари
Можно ли зарезать права группы, например, или я могу помешать каким-то внутренним механизмам работы? или умный движок сам тут понимает , что ему лучше и мне напишет в лог, если я чересчур ограничу права. Версии , конечно, древние, но надо с ними повозиться
Эрл
зайбали уже в каждом чате...
админы, гоните его ссаными тряпками пж
Qwerty
Эрл
могу написать такого
Эрл
как вариант
Светлячок
Подскажите куда смотреть в документации что бы я смог создать юзера который сможет коннектится к любой базе данных и не было такого
Светлячок
Создаю юзера но могу подключится только к той базе в которой его создал
yopp
я его на прошлой неделе выкинул: платно — дорого, а CAS бесполезно. капча бесполезна не работает когда юзерботов добавляют руками
плюс ложно-положительные срабатывания всех этих ботов мешают живым людям. встроенный «агрессивный антиспам» очень агрессивный в этом плане, тоже пришлось отключить
спустя почти 10 лете самый надежный способ всё ещё выпиливать руками по факту
yopp
(права работают отдельно от аутентификации)
Светлячок
yopp
ох, да, вам нужно явно указать authDb=admin в uri, иначе клиент будет аутентифицироваться используя db_name как источник списка пользователей и прав
Светлячок
Светлячок
Я то думаю почему я могу управлять базой когда подключаюсь без явного указания базы данных в url но не могу подключится к ней когда добавляю ее в url
yopp
Светлячок
yopp
Kirilll
Kirilll
А изменения/удаления по колл частые?
Была такая же проблема на большой колл в монге 4.4.9
Шардированная
По колл часто проходили инсерты и делиты и при запросе документа драйвер питона иногда говорил, что документа нет по указанному фильтру, хотя физически документ был и никуда не девался. Монгс при этом документ всегда отдавал
Запрос был по индексируемому полю, из этого было предположение, что монга не успевает нормально перестроить индекс
По итогу подставили костыль с вызовом документа через монго Шелл из кода и проблема решилась
Nick
Kirilll
Вообще часто натыкались на то, что монго Шелл часто под капотом обрабатывает много косяков
Но про индекс тут вряд ли так можно сказать, тут скорее всего ты прав
Kirilll
Поэтому тестим 6 монгу для перехода
На 7 не решились, изменений в коде много придется сделать
Kirilll
Kirilll
Для уверенности взяли 6
Потому что база огромная
Ее в целом перевозить страшно)
Andrey
Kirilll
Andrey
4Тб
ну много, но не огромная, в 1 человека, с переписыванием кода сервисов + изменения структуры документов(export, update docs(files) -> import в новый кластер) = на миграцию такой же(5.5 TB - а raw почти 10TB) ушел человеко-месяц.
SoulSilence
SoulSilence
Хотя баг с которым мы боремся безусловно эпичный
Kirilll
Andrey
Kirilll
Andrey
самое долгое: экспорт и обновление и импорт, на это ушло дней 10, даже больше
Kirilll
Kirilll
понял
это надо местом запастись под экспорт)
Kirilll
мы будем пробовать поднимать версию с 4.4 до 6 на тестовых стендах и смотреть как работает
Kirilll
да
мы тоже боролись с чанками около года, победили
но решили все таки начать думать в сторону новой версии
там к чанкам подход другой уже
Kirilll
Kirilll
но ньюансов с ней очень много
стоит учитывать, что добавить новую ноду в кластер та еще проблема, особенно если нет возможности увести ее в дооолгий ДТ, ну и с большим объемом данных это задача на очень долгое время
Kirilll
чтобы ты понимал
вместо расширения и добавление ноды в сциллу, мы поднимаем отдельный кластер сциллы рядом)
Andrey
yopp
понял
это надо местом запастись под экспорт)
Для обновления до новых версий не обязательно делать импорт-экспорт.
Просто обновляйтесь от одной мажорной версии, до следующей: 4.2 → 4.4 → 5.0 → 6.0 → 7.0 по стандартной инструкции
https://www.mongodb.com/docs/manual/release-notes/4.4-upgrade-replica-set/
Kirilll
Это понятно
Импорт делали в бд выше версией для теста работоспособности
Denis
добрый день!
Как сделать в mongoose, чтобы subdocument был опциональным? например, чтобы в parentInfo необязательным был childInfo
const childInfo = new Schema(…)
const parentInfo = new Schema(
{
body: {
type: String,
required: true,
},
child: childInfo,
},
);
Юлиан🦉
Привет, а есть у кого то кейсы интеграции с какими-нибудь opensource search engine(в идеале opensearch)?
Юлиан🦉
SoulSilence
Denis
required: false
Но куда его добавлять тогда? В примере в child сразу подставляется схема. Или схему можно в type прописать?
SoulSilence
Kirilll
Ахах
Да я бы почитал, вдруг нам подойдет
Kirilll
А то в свое время с чендж стримами тоже отхлебывали
SoulSilence
Я не настраивал но могу через неделю глянуть как у нас это работает
SoulSilence
Но в целом работает при том что коллекция у нас большая, жирная, апдейтов много и тд.
Из единственного прикола у нас есть какой-то скрипт который иногда фиксит расхождения которые появляются между коллекций и ее отображение в эластик но эта штуку редко прогоняют, обычно после инцидентов каких-то приходится
Kirilll
В общих чертах бы
Как я понял монга - на ее поток подсаживаем moonstache - а поток с moonstache льется в эластик
Верно? Никаких прослоек из кафок?
SoulSilence
Kirilll
Поищу информацию по этому
Спасибо!
Юлиан🦉
Да
А есть какой-то способ индексировать только определённые поля?
SoulSilence
Но мне надо посмотреть как это реализовано, не сегодня уже
Yura
Коллеги, всем привет. Есть следующий кейс:
Имеется 2 сервера с абсолютно одинаковой конфигурацией, но на первом стоит монга 5.0.24, на втором 6.0.13.
Есть скрипт, который каждую минуту ходит в базу и делает несколько операций записи/чтения через оболочку типа "mongo —eval...". Так вот, на версии 5 этот скрипт летает, на версии 6 отрабатывает медленно и вызывает бешеную нагрузку на цпу в 70-80%, при том что скрипты отличаются только тем что на 5 версии вызывается "mongo", а на 6 "mongosh". Провел эксперимент и на 5 версии запустил этот же скрипт с оболочкой mongosh, результат - нагрузка цпу в потолок. Кто-нибудь уже с этим сталкивался?
Yura
Нашел вот такое: https://jira.mongodb.org/browse/MONGOSH-1240
Yura
Произвел замеры у себя:
5.0.24
mongo ... --eval 'db.adminCommand( { replSetGetStatus : 1 } ).myState'
real 0m0.088s
user 0m0.061s
sys 0m0.020s
6.0.13
mongosh ... --eval 'db.adminCommand( { replSetGetStatus : 1 } ).myState'
real 0m0.940s
user 0m1.066s
sys 0m0.087s
мда, 6 сотых против целой секунды.. Есть обходные пути? Можно ли использовать старую оболочку на 6 и 7 версиях ?
Nick
Yura
Владимир Т
здравствуйте, есть такая ошибка при создании дампа