Гена
С наступающим
Nick
На стороне приложения переимовывайте, либо просто везде используйте _id
Anonymous
Есть ли ограничения по количеству баз данных в одном кластере?
Сергей
Не актуально)
🖤
Привет. Подскажите, как делаем, если два действия - создания и апдейт документа выстреливают так быстро, что на фазе апдейта документа в базе ещё нет?
🖤
действия вызываются из разных мест асинхронной системы, отражают события реального времени, то есть обновления без записи случиться не может (обратное возможно), так что ждать не получится. Мб какие-то решения типа очередей/job queue ?
Назар
действия вызываются из разных мест асинхронной системы, отражают события реального времени, то есть обновления без записи случиться не может (обратное возможно), так что ждать не получится. Мб какие-то решения типа очередей/job queue ?
чтоб что то обновить нужно обьект достать по ид или другому полю, и как же вы достаете обьект, которого нет? Вообще наверное вам подойдуть хуки, тоесть события изменения бд, но я их не использовал.
Dmitriy
Привет. Подскажите, как делаем, если два действия - создания и апдейт документа выстреливают так быстро, что на фазе апдейта документа в базе ещё нет?
Используйте update с upsert как вариант или findandmodify, или вообще не используйте обновление, а используйте только создание событий и связи между ними на уровне бизнес логики. Вариантов много, конкретный зависит от задачи, которую вы решаете
Fred
Я делал расширенный метод в модели на стороне nodejs getData где получаю только нужные данные переименовываю айди ну это как один из вариантов
Max
привет. такой вопрос - standalone от не standalone ноду отличает наличие в конфиге replication.replSetName как минимум? т.е. я не могу взять standalone и без перезагрузки и обновления конфига просто сделать по ману https://docs.mongodb.com/v3.4/tutorial/deploy-replica-set-with-keyfile-access-control/#deploy-repl-set-with-auth ?
yopp
Нет, без перезагрузки не сделать
Max
понятно, спасибо. и второй момент - просто заявить реплика сет в конфиге не вышло, ошибка "Unhandled rejection MongoError: not master and slaveOk=false" значит что я не могу просто включить реплика сет и получить работающую единственную ноду на время настройки остальных?
Fred
😁👍
Fred
С наступающим всех!
komron️
Всем привет. Тут кто-нибудь знаком с тем как я могу создать поисковый движок на базе монги? Не просто наивный поиск на слова, а там стемминг, индексация, ранжирование и тд
komron️
Если есть ссылки и ресурсы, пожалуйста присылайте
Max
Привет, да.
komron️
мне предложили http://whoosh.readthedocs.io/en/latest/intro.html но я думаю то что включено в монге сойдёт. я не знал что там тоже есть поддержка на стемминг и индексацию
Max
У меня нет сопоставимого опыта с монгой. Только елк и только теоретический.
Max
Практический с елк - логи и обработка. Про полнотекстовый поиск, токенизацию и индексацию только читал.
yopp
Если есть ссылки и ресурсы, пожалуйста присылайте
есть очень дубовый встроенный https://docs.mongodb.com/manual/core/index-text/
yopp
text index tokenizes and stems the terms in the indexed fields for the index entries. text index stores one index entry for each unique stemmed term in each indexed field for each document in the collection. The index uses simple language-specific suffix stemming.
Сергей
Ребят, подскажите, как сделать верхний регистр в названии коллекции?
Сергей
Ага
Сергей
В Монгузе чтоли?
При объявлении схемы
Aleksandr
там второй аргумент есть
Aleksandr
и там { collection: 'Любое имя' }
Experimentalist
Всем привет. Вопрос тем, кто разбирается в базах данных. Реализация реляционная модель + memcached в целом по своей сути похожа на NoSQL?
Experimentalist
memcached = активное кеширование.
Aleksandr
вообще не похоже
Experimentalist
Всем привет. Вопрос тем, кто разбирается в базах данных. Реализация реляционная модель + memcached в целом по своей сути похожа на NoSQL?
Если, например, я буду в memcached записывать те же самые денормализованные объекты данных.
Experimentalist
Aleksandr
а что тут сомневаться
Experimentalist
Если реляционная модель это нормализованные данные, которые меньше по весу, но читаются долго из за отсылок к разным таблицам, в то время как денормализованные весят больше, но имеют большую скорость чтения, что на memcached можно и реализовать.
Aleksandr
если запросы только по ключу то и sql не нужен
Aleksandr
одного редиса хватит
Aleksandr
а если нужно запросы с условиями делать всякие пайпланы индексы по ключам то какой тут мемкешед
Aleksandr
Я много-много лет работал с sql в том числе с довольно большими объемами данных и думал что nosql это для специфических каких-то задач, которые не мои, а потом когда с монго разобрался теперь вообще вокруг себя не вижу задач для которых sql будет удобнее чем монго
Aleksandr
такой геморрой этот sql в администрировании и вообще
Josh
поэтому жду акции монги х10
Aleksandr
в банковской системе легаси на легаси легаси управляется
Aleksandr
вот и sql там застрял навечно
Aleksandr
а так-то поди любой банк если перепишет эту древнюю муть то на порядок затраты сократит определенные
Experimentalist
В банковской системе, наверное, SQL более пригоден.
Предположение из сохранения целостности данных.
Aleksandr
legacy код, системы - это когда написали что-то и уже лучше не трогать а то все непредсказуемо перестанет работать
Aleksandr
или протоколы интеграции какие-то которые со всех концов не заменишь сразу и приходится поддерживать то что есть
Experimentalist
Допустим, есть коллекция items и нужно сменить какое-то значение у n записей, придётся кучу всего перезаписывать, разве не лучше поменять это в одном месте и обновить кешированное значение?
Сергей
и там { collection: 'Любое имя' }
Я вот когда так делаю В бд коллекция записывается slsessions
Aleksandr
Я вот когда так делаю В бд коллекция записывается slsessions
Когда схему объявляешь там этот аргумент, не у модели
yopp
В банковской системе, наверное, SQL более пригоден.
Sql это язык, а не модель данных. И в банках не одна задача
yopp
Деньги в АБС, а обертку вокруг абс можно на чём угодно делать
yopp
В первую очередь потому, что пытаться обхитрить механизм кеширования базы данных, почти гарантированно провальная идея, которая выстрелит не только в коленку
yopp
Нормализация и денормализация это исключительно выбор о том, когда мы платим за вычисление конечного состояния необходимых нам данных Нормальная форма — платим за вычисление при чтении Денормализированная форма — платим при записи
Experimentalist
Спасибо за ответы.
yopp
И да, хранить в кэше данные прямо из базы данных в 98% случаев приведёт к обратному эффекту, а не к ожидаемому. Плюс на порядок усложнит логику работы.
yopp
Три самые сложные проблемы: выбор структуры данных, названия переменных и кеширование
Semyon V
нужен ли sparse индекс для полей, значение в которых присутствует в 99.9% случаях?
Nick
нужен ли sparse индекс для полей, значение в которых присутствует в 99.9% случаях?
нет, спарс нужен когда вы получите экономию и вообще является частным случаем partiial индекса, который получает профит за счет ограничения количества индексируемых доков по какому-то признаку, который встречается в какомнить частом виде запросов, например флаг о том что док еще не обрабатывался
Dima
У типа String есть ограничение по длине? Пытаюсь записать JWT токен длинной 1234, получаю ошибку https://i.imgur.com/AFyXfKZ.png
Oleg
вроде четко написано
Oleg
1024 лимит там