Рагулєг🍉
Не ори
Рагулєг🍉
Ненавижу линукс
Alexey
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
Nick
зачем? это задача приложения реагирвоать на отсутвие поля как на поле с дефолтным значением
Marshal
Мне как-то пока очень странно и непонятно это все
Marshal
Особенно отсутсвие каких-то утилит для этого
Nick
заранее прорабатывают структуру, пилят мвп, на нем понимают где налажали со структурой и делают нормальную схему под бой
Nick
и перепиливают проект уже с учетом информации полученной от мвп
Nick
а суть проста - в реальной боевой системе с нормальным количеством данных крайне дорого произвести апдейт каждого документа в базе полностью выбив все ресурсы БД только ради того чтобы в базе появилось поле, по отношению к которому мы итак значем как действовать если его нет. Так что добавляете в код парочку ифов и работаете дальше - в этом преимущество НоСКЛ перед обычными СКЛ БД, где невозможно просто добавить поле или оно обьязательно должно быть одного типа для всех записей
Nick
добавление значения поля обосновано только в одном случае как мне кажется - если на основе значения этого поля будут делаться выборки, которые потребуют обязательной индексации
Marshal
Спасибо большое за развернутые ответы! Всю жизнь сидел на скл бд, сложно пока переключиться и перестать думать как раньше ✨
Mike
может рациональнее новое поле добавить я не типа данных менять? по мне так проще будет приложением данные обрабюатывать, просто по условияналичия/отсуствия значения поля. сможем менять старые записи (мало) ли зачем там строки были". Тогда не надо будет делать миграцию тоже как плюс. Или я не прав?
Aleksandr
Ну так сапдейть их в цикле
Aleksandr
Там же mongo из командной строки ест джавкскрипоподобные скрипты
Marshal
Ну таки да. Я и спрашиваю насколько нормально писать скрипты для такого или как с этим жить)
Котяй
Чем стоит руководствоваться, определяя степень нормализации в монге? Общие универсальные принципы есть?
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
Я создал мультиязычный текстовый индекс {'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
Кто может подсказать в чем может быть причина
укажите явно $language при поиске
If you specify a language value of "none", then the text search uses simple tokenization with no list of stop words and no stemming.
Nick
ктонить чтото может сказать про https://docs.atlas.mongodb.com/full-text-search/?jmp=docs#full-text-search ?
Artem
Nick
Artem
Мне тоже хочеться
Yaroslav
Всем доброго дня!!!
Подскажите пожалуйста, использовал при разработке watch(), сейчас пытаюсь создать свою монгу на сервере.
Выдаёт ошибку что The$changeStream stage is only supported on replica sets.
Если использую удаленную монгу в mongodb atlas все работает хорошо.
Сервер на Ubuntu использую nodejs.
Что делать ? 🙈🙈
Aleksandr
настроить replica set
Yaroslav
Я сейчас могу показаться совсем недалеким, но я на самом деле такой и есть, но что такое этот реплика сет? Погуглил, не понял... и есть ли где-нибудь мануал по настройке? Если вопрос неуместен, приношу извинения...
Nick
Yaroslav
И после настройки все будет работать?
Нужно ли будет переписывать код на сервере ?
Nick
не нужно, сама настройка реплкасет нужна чтобы у вас появился оплог
Yaroslav
Ой спасибо огромное, и если не составит труда, не могли бы вы в двух словах описать что это такое? По русски... и почему это произошло?
Yaroslav
Если это возможно конечно...
Aleksandr
это чтобы watch() можно было использовать
Aleksandr
Nick
в атласе всегда настраивается репликасет из трех нод, поэтому там априори всегда будет оплог. когда же вы поставили себе стенделон монгу, которая по умолчанию идет без включенного оплога, вы и потеряли возможность использовать чанжстрим
Yaroslav
Понял, спасибо ещё раз огромнейшее !
Ilya
Возник вопрос, а если ли разница между find и findOne, в случае, когда ведется поиск 1 документа по индексированному полю (скажем, по ObjectId)?
Ilya
Я имею ввиду скорость запроса, конечно же
Anastasia
findOne быстрее он же ищет первый попавшийся и не смотрит дальше
yopp
yopp
yopp
денормализированные документы == платим всё при записи
yopp
нормализированные документы == платим при чтении
yopp
и конечный выбор будет зависеть от структуры нагрузки на базу
yopp
yopp
скорее всего поиск не по индексу
yopp
Ilya
нет
но ведь тут действительно стоит учитывать, что findOne заканчивает перебор документов, как только находит нужный, а find идет по всей коллекции до конца... или для ObjectID делается исключение?
yopp
где-то в группу я уже рассказаывал про forward-only миграции, это самый простой способ
yopp
yopp
я не знаю как в вашем драйвере, скорее всего разница заключается в том, что findOne неявно устанавливает limit: 1 и возвращает сразу документ, а не перечеслимый тип
yopp
или как там сейчас, findOne/findMany и find, который депрекейтед?
yopp
предложение выделить роли в отдельную коллекцию возможно вам подойдёт, но всё зависит от того как у вас устроена модель прав
yopp
https://docs.mongodb.com/manual/reference/command/nav-crud/
yopp
вот это и aggreggation commands это весь crud который в самой монге есть
Андрей
IDEA уведомляет ворнинг, но не пойму что тут не так?
Сергей
Ребят, привет
Подскажите, как сделать вот такую операцию но при условии, что поле group у пользователя пустое, а если нет выдать ошибку,
Mike
Mike
Андрей
Mike
Пока нет
мудрые люди говорят что динамическая схема - есть зло
Mike
Андрей
Я свернул просто, это IDEA показывает что там код есть скрытый
Mike
Андрей
Андрей
Если new уберу не подсвечивает. Да кароче IDEA глючит наверно