Рагулєг🍉
Не ори
Рагулєг🍉
Ненавижу линукс
Alexey
Народ, что значит session collection is not set up; waiting until next sessions reap interval: config.system.sessions does not exist?
Max
Добрый вечер! Пытаюсь смотреть профайлер на атласе, и вижу следующее:
Max
в общем что значит returned ratio , и как можно интерпритировать график? я гуглил, но чот не дошло, можно простым руским)?
Marshal
да пишите скрипты, а вообще предполагаетс, что поле с другим типом будет по новому называться, а старое останется
Но тогда опять же нужен скрипт чтобы всем дефолтное значение проставить в новом поле?
Nick
зачем? это задача приложения реагирвоать на отсутвие поля как на поле с дефолтным значением
Marshal
зачем? это задача приложения реагирвоать на отсутвие поля как на поле с дефолтным значением
Хм, и правда. А как происходит поддержание вообще вот таких разных полей на больших проектах? Это как-то люди вообще документируют? Правки все эти. Что было, что стало и т.д.
Marshal
Мне как-то пока очень странно и непонятно это все
Marshal
Особенно отсутсвие каких-то утилит для этого
Nick
заранее прорабатывают структуру, пилят мвп, на нем понимают где налажали со структурой и делают нормальную схему под бой
Nick
и перепиливают проект уже с учетом информации полученной от мвп
Nick
а суть проста - в реальной боевой системе с нормальным количеством данных крайне дорого произвести апдейт каждого документа в базе полностью выбив все ресурсы БД только ради того чтобы в базе появилось поле, по отношению к которому мы итак значем как действовать если его нет. Так что добавляете в код парочку ифов и работаете дальше - в этом преимущество НоСКЛ перед обычными СКЛ БД, где невозможно просто добавить поле или оно обьязательно должно быть одного типа для всех записей
Nick
добавление значения поля обосновано только в одном случае как мне кажется - если на основе значения этого поля будут делаться выборки, которые потребуют обязательной индексации
Marshal
Спасибо большое за развернутые ответы! Всю жизнь сидел на скл бд, сложно пока переключиться и перестать думать как раньше ✨
Mike
может рациональнее новое поле добавить я не типа данных менять? по мне так проще будет приложением данные обрабюатывать, просто по условияналичия/отсуствия значения поля. сможем менять старые записи (мало) ли зачем там строки были". Тогда не надо будет делать миграцию тоже как плюс. Или я не прав?
Marshal
может рациональнее новое поле добавить я не типа данных менять? по мне так проще будет приложением данные обрабюатывать, просто по условияналичия/отсуствия значения поля. сможем менять старые записи (мало) ли зачем там строки были". Тогда не надо будет делать миграцию тоже как плюс. Или я не прав?
Тут явно мой косяк. Я спутал, что за данные там могут быть и выставил не тот тип. Переезжал с постгреса на монго, смигрировал данные скриптом. И потом заметил, что не тот тип 🤷‍♂ стало интересно чё делают люди в такой ситуации. Как-то в самом начале проекта не очень хочется ифы бахать. Данных не много
Aleksandr
Ну так сапдейть их в цикле
Aleksandr
Там же mongo из командной строки ест джавкскрипоподобные скрипты
Marshal
Ну таки да. Я и спрашиваю насколько нормально писать скрипты для такого или как с этим жить)
Котяй
Чем стоит руководствоваться, определяя степень нормализации в монге? Общие универсальные принципы есть?
Nick
Чем стоит руководствоваться, определяя степень нормализации в монге? Общие универсальные принципы есть?
как и визде - здравый смысл и удобство работы с данными под ваши запросы/задачи. единственно можно сказать что монга тяготеет к денормализованным данным
Artem
Всем привет
Artem
Я создал мультиязычный текстовый индекс {'user_id': 1, 'bot_id': 1, 'keywords_search.keyword': 'text'} пробую сделать поиск записи { "user_id":6798603, "bot_id": ObjectId("5df0d59910037366041cc823"), "keywords_search": [ { "language": "russian", "keyword": "дом" }, { "language": "spanish", "keyword": "дом" }, { "language": "swedish", "keyword": "дом" }, //... ] } запросом db.triggers.find({ 'user_id' :6798603, 'bot_id': ObjectId('5df0d59910037366041cc823'), '$text': {'$search': 'дома', '$diacriticSensitive': true}, }) но не чего не нахожу, версия MongoDB 4,2 Кто может подсказать в чем может быть причина
Nick
ктонить чтото может сказать про https://docs.atlas.mongodb.com/full-text-search/?jmp=docs#full-text-search ?
Artem
ктонить чтото может сказать про https://docs.atlas.mongodb.com/full-text-search/?jmp=docs#full-text-search ?
А есть умные идеи как не использовать Atlas и сделать full text search
Nick
А есть умные идеи как не использовать Atlas и сделать full text search
так я и не предлагал, сейчас натнулся хочется фидбека какогонить
Artem
Мне тоже хочеться
Yaroslav
Всем доброго дня!!! Подскажите пожалуйста, использовал при разработке watch(), сейчас пытаюсь создать свою монгу на сервере. Выдаёт ошибку что The$changeStream stage is only supported on replica sets. Если использую удаленную монгу в mongodb atlas все работает хорошо. Сервер на Ubuntu использую nodejs. Что делать ? 🙈🙈
Aleksandr
настроить replica set
Yaroslav
Я сейчас могу показаться совсем недалеким, но я на самом деле такой и есть, но что такое этот реплика сет? Погуглил, не понял... и есть ли где-нибудь мануал по настройке? Если вопрос неуместен, приношу извинения...
Yaroslav
И после настройки все будет работать? Нужно ли будет переписывать код на сервере ?
Nick
не нужно, сама настройка реплкасет нужна чтобы у вас появился оплог
Yaroslav
Ой спасибо огромное, и если не составит труда, не могли бы вы в двух словах описать что это такое? По русски... и почему это произошло?
Yaroslav
Если это возможно конечно...
Aleksandr
это чтобы watch() можно было использовать
Aleksandr
Nick
в атласе всегда настраивается репликасет из трех нод, поэтому там априори всегда будет оплог. когда же вы поставили себе стенделон монгу, которая по умолчанию идет без включенного оплога, вы и потеряли возможность использовать чанжстрим
Yaroslav
Понял, спасибо ещё раз огромнейшее !
Ilya
Возник вопрос, а если ли разница между find и findOne, в случае, когда ведется поиск 1 документа по индексированному полю (скажем, по ObjectId)?
Ilya
Я имею ввиду скорость запроса, конечно же
Anastasia
findOne быстрее он же ищет первый попавшийся и не смотрит дальше
yopp
Чем стоит руководствоваться, определяя степень нормализации в монге? Общие универсальные принципы есть?
тем, когда вам выгоднее платить за создание конечного состояния: при записи или при чтении
yopp
денормализированные документы == платим всё при записи
yopp
нормализированные документы == платим при чтении
yopp
и конечный выбор будет зависеть от структуры нагрузки на базу
yopp
в общем что значит returned ratio , и как можно интерпритировать график? я гуглил, но чот не дошло, можно простым руским)?
для того чтоб вернуть 1 документ из addresses приходится читать 5 тысяч документов
yopp
скорее всего поиск не по индексу
Ilya
нет
но ведь тут действительно стоит учитывать, что findOne заканчивает перебор документов, как только находит нужный, а find идет по всей коллекции до конца... или для ObjectID делается исключение?
yopp
где-то в группу я уже рассказаывал про forward-only миграции, это самый простой способ
yopp
я не знаю как в вашем драйвере, скорее всего разница заключается в том, что findOne неявно устанавливает limit: 1 и возвращает сразу документ, а не перечеслимый тип
yopp
или как там сейчас, findOne/findMany и find, который депрекейтед?
yopp
@dd_bb что думаете?)
роли это частный случай many-to-many отношений
yopp
предложение выделить роли в отдельную коллекцию возможно вам подойдёт, но всё зависит от того как у вас устроена модель прав
Ilya
или как там сейчас, findOne/findMany и find, который депрекейтед?
в драйвере под ноду как раз имеется findOne и find) я провел тесты, попробовал запрашивать из коллекции на 10тыщ доков, и результаты примерно одинаковые
yopp
https://docs.mongodb.com/manual/reference/command/nav-crud/
yopp
вот это и aggreggation commands это весь crud который в самой монге есть
Андрей
IDEA уведомляет ворнинг, но не пойму что тут не так?
Сергей
Ребят, привет Подскажите, как сделать вот такую операцию но при условии, что поле group у пользователя пустое, а если нет выдать ошибку,
Mike
Пока нет
мудрые люди говорят что динамическая схема - есть зло
Андрей
мудрые люди говорят что динамическая схема - есть зло
Динамическая это у которой могут потом поля добавятся?
Андрей
нет, ключи динамические
Понятно, ключи не будут меняться
Андрей
нет, ключи динамические
Это относится к ворнингу?
Mike
Это относится к ворнингу?
там три точки после String это что
Андрей
Я свернул просто, это IDEA показывает что там код есть скрытый
Андрей
Андрей
Если new уберу не подсвечивает. Да кароче IDEA глючит наверно