Anton
Anton
Данная конструкция приемлема ?
lutik
Создай один документ, где будут храниться все категории и отдельный документ, где будет хранится подкатегории
lutik
В подкатегориях сделай поле categoryId, которое будет указывать на id категории
lutik
Данные сможешь достать по двум idШникам или по $lookup
lutik
Взял бы уже реляционку, раз учишься , куда лучше будет обучение и понимание
lutik
Постгре майСКЛ
lutik
Postgre лучше
tmarket support
отличная идея в 2к21 предлагать mysql)
Oleg
норм рсубд за свои деньги
lutik
Призму взяли и поехали
Anton
Создай один документ, где будут храниться все категории и отдельный документ, где будет хранится подкатегории
То есть я делаю две модели: Category и SubCategory. У SubCategory мне нужно указать в объекте id, а у категории нужно создать массив, в котором будут хранится мои подкатегории, верно понял ?
lutik
Нет, но уже близимся к цели
lutik
А может лучше на реляционке, мне даж будет не тяжело обьяснить в личке, но ток на пг или муСкул
lutik
Хочиш?
Данила
Данила
Тут все сказано
Данила
Оракл дорого
lutik
В монге я овощь, умею ток агрегатные запросы писать
lutik
А че, мне приказали научиться писать агрегатные запросы на монгу
lutik
Ну массив какой то
lutik
Структура такая, есть таблица с записями вида id categoryName, есть таблица с записями вида id subCategoryName categoryId
Anton
типа вот так subcategories: [ { type: ObjectId, ref: 'Subcategory' }, ]
lutik
OTM
lutik
ОнеТуМани
lutik
Ну если subcategories это документ, то все правильно
lutik
Да походу не ты один
Тут админ иногда ходит, любой вопрос задаёшь и он его за 2 минуты решает, как он тут всегда стараюсь что нить спросить
Anton
А как его зовут ?
lutik
Потомучто никто Нигера никогда не ответит
lutik
Не знаю
Данила
Есть кстати https://t.me/mongo_db ещё этот чат, но там пендосы с виндой xp
lutik
Админа зовут youup
lutik
Демон
Anton
хорошо, спасибо
Anonymous
level=fatal msg="failed to create client to mongodb due to error connection() error occured during connection handshake: auth error: sasl conversation error: unable to authenticate using mechanism \"SCRAM-SHA-1\": (AuthenticationFailed) Authentication failed.
Andrei
так как проблема может быть в том, что authSource неверно указан например
Andrei
а в ошибке вроде нет ничего про ssl и tsl
Andrei
sasl - Simple Authentication and Security Layer
Elinka22
Use of the +srv connection string modifier automatically sets the tls (or the equivalent ssl) option to true for the connection. You can override this behavior by explicitly setting the tls (or the equivalent ssl) option to false with tls=false (or ssl=false) in the query string.
andry
Пятёрку релизнули
andry
Какую?
https://github.com/mongodb/mongo/releases/tag/r5.0.0
Vadim
Всем привет, в случае использования конструкций async/await в запросах, как отлавливать ошибки валидаций? Пример: const profile = await audioProfile.findOneAndUpdate({ _id: req.params.id }, body, { new: true })
Vadim
.exec() .validateSync() ?
Vadim
.exec() .validateSync() ?
.exec() работает, спасибо мне
Ivan
Точнее, на сколько просядет происвлдительность в сравнении с 3.6 и 4.4
Anonymous
Всем привет! в каком случае имеет место шардированный кластер монги?
Anonymous
@valknut3_9 офигеть, а я вас помойму знаю, вот так встреча 😁😁
Anonymous
Сорри за оффтоп
Slava
Всем привет! в каком случае имеет место шардированный кластер монги?
привет! тут несколько моментов: - когда хочется(правильное слово скорее всего исходя из текущих метрик и требований к throughput/latency) скейлить read/write нагрузку, - когда данных так много(сотни гигабайт, террабайты), что они не помещаются на одну машину - когда важна отказоустойчивость: выпадение одного шарда, позволит сервису работать дальше, просто без части данных
Slava
Ну, на самом деле - праймари с репликами отлично это покрывают. С Шардированием гемороя больше.
зачастую это путь ведущий к большим проблемам, если скейлиться за счет чтения с реплик
Slava
так можно делать, да, но все от задач/нагрузк нагрузок
Elinka22
Мне не совсем понятна логика шардирования при записи данных. Оно в любом случае же пишет на одну физическую ноду?
Elinka22
А потом оно разлетается по репликам, даже в шарде
Slava
Мне не совсем понятна логика шардирования при записи данных. Оно в любом случае же пишет на одну физическую ноду?
почему же, шарды это независимые ноды(иначе не очень большой смысл шардироваться, хотя так тоже можно), если я верно понял вопрос
Anonymous
Вообщем используй Шарды если в тебя 1 нода не выдерживает нагрузки
Anonymous
так можно делать, да, но все от задач/нагрузк нагрузок
Elinka22
Шардирование помогает раскидать данные по нескольким ВМ, т о есть не 120 гигов данных, а 60+60, к примеру
Anonymous
А в других случаях лучше мастер-слейв)
Slava
шардированние если упросить выгляить вот так: shard1(master-node1, slave-node2) shard2(master-node3, slave-node4)
Elinka22
шардированние если упросить выгляить вот так: shard1(master-node1, slave-node2) shard2(master-node3, slave-node4)
Ну, нет. Как ноды получат данные если будет писать в разные мастера?
Slava
для этого есть router - mongos
Slava
вот тут ведь хорошо это описано https://www.mongodb.com/basics/sharding
Elinka22
Точно, я про них забыл, спасибо!
Anonymous
Забыла*
Elinka22
То есть оно пишет в роутер/роутеры, который знает информацию о мастерах и чанках?
Elinka22
Забыла*
Технически, я мальчик 🙂
Slava
То есть оно пишет в роутер/роутеры, который знает информацию о мастерах и чанках?
да, вернее роутеры они как stateless приложения, берут конфиг из config-servers, вот это сердце шариднга в монге, так как они хранят всю карту шардинга
Elinka22
да, вернее роутеры они как stateless приложения, берут конфиг из config-servers, вот это сердце шариднга в монге, так как они хранят всю карту шардинга
Для меня недавно было открытием, как реплика свеженалитая получает конфиг репликасета 🙂 Чтение логов очень помогло понять принцип
Vened
Слушайте, а где-то ещё можно раздобыть репозиторий с монгой версии 2.6?