Алексей
конечно, монго просто работает с твоим диском, все изменения фиксируются там, при отключении докера папка не исчезает, значит при повторном запуске монга их подтянет и продолжит работу. В этом и смысл. А чего просто локально не установил монгу?)
Lonly
Lonly
Больше спасибо за помощь
Ilya
Я делаю запрос к базе: запрашиваю документ, вместе с этим выполняю Populate (как Join в реляционных базах) к другой коллекции. C populate варианта 2: либо мне вернется документ (если найден), либо null (если не найден).
Вопрос не столько к монге относится, сколько концептуальный (или даже архитектурный).
Как обрабатывать случай, если populate возвращает null?
Например, у меня HTTP GET запрос - запрос пользователя (users) по ID. В документе users есть поле role, по нему я выполняю populate. Возвратить пользователю я должен структуру с данными users, которая включает в себя так же и populated документ role. Но вот незадача - он null.
Мне просто интересно, ведь в реляционных базах данных такое должно встречаться постоянно. Неужели разработчики каждый раз создают отдельную ошибку в таких случаях? Или как вообще это обрабатывается?
Алексей
ноу-сиквель БД ведь тем и хороши что все нужное можно хранить в одном месте, не размазывая по таблицам. Почему роль юзера не хранится с ним?
Ilya
я привел просто теоретический пример
Tetra
Я делаю запрос к базе: запрашиваю документ, вместе с этим выполняю Populate (как Join в реляционных базах) к другой коллекции. C populate варианта 2: либо мне вернется документ (если найден), либо null (если не найден).
Вопрос не столько к монге относится, сколько концептуальный (или даже архитектурный).
Как обрабатывать случай, если populate возвращает null?
Например, у меня HTTP GET запрос - запрос пользователя (users) по ID. В документе users есть поле role, по нему я выполняю populate. Возвратить пользователю я должен структуру с данными users, которая включает в себя так же и populated документ role. Но вот незадача - он null.
Мне просто интересно, ведь в реляционных базах данных такое должно встречаться постоянно. Неужели разработчики каждый раз создают отдельную ошибку в таких случаях? Или как вообще это обрабатывается?
и ошибки создаются отдельные на каждый чих и обрабатывается и игнорируется и предотвращается - чтото из этого комбинируется, чтото выкидывается, все зависит от вашего подхода и чисто проблема проектирвоания системы
Ilya
Ilya
ну понятно, что я могу, скажем, создать класс UserRoleNotFoundError, специально заточенный под этот запрос
неужели для всех случаев делать такие вот отдельные ошибки?
и я не уверен, что фронту вообще о таком знать следует
Tetra
Tetra
Нуриддин
Нуриддин
Нуриддин
К примеру nginx
Андрей
Привет всем
Возникла проблема: MongoDB не использует созданные индексы при сортировке
Есть индекс count_-1, выполняю .sort({count: -1}), в результате запрос выполняется долго и в статистике использования индекса его кол-во не прибавляется
В чём может быть дело?
Nick
Nick
Andrey K.
знает ли кто канал/чатик с вакансиями по Монго и/или иными nosql?
agic
Алексей
Aisultan
Всем привет. Есть кто смог успешно подключиться к mongo db, который находится на yandex cloud, посредством odbc?
Alexander
Пытаюсь использовать оператор $ в проекции, чтобы вернуть подходящий элемент во вложенном массиве: https://mongoplayground.net/p/6CMYQC4phSi
При этом возвращается весь элемент массива Services. Подскажите, как сделать, чтобы в нём был только тот элемент массива Prices, который подходит под условие (у которого Id равен 3)?
yopp
Alexander
yopp
Нуриддин
Alexander
Если задача просто ограничить данные то и limit подойдёт
Не подойдёт. limit ограничивает количество возвращаемых документов. А мне нужно уменьшить размер самого документа, потому что в Prices на самом деле приличное количество элементов, которые не хочется гонять по сети. Поэтому, видимо, аггрегация 🤷♂
Нуриддин
Нуриддин
Либо агрегируешь данные либо играешь с переменными в поиске, кстати это звучит возможно проще но не надёжнее
Nick
Всем привет.
Подскажите пожалуйста можно ли настроить replica set из трех нод так, чтобы при падении двух из них можно было писать в последнюю, оставшуюся?
Write concern я принудително выставил в w:1, а вот как перевести оставшуюся ноду из secondary в primary не нашел.
Спасибо.
Nick
Nick
Nick
Нода осталась одна в secondary, изменить параметры кластера может только primary.
Nick
на всякий отмечу, что чтото могло потеряться, что было на праймари, поэтому желательно провести какую либо сверку на консистентность данных
Nick
Задача стоит такая: есть приложение и база монги, необходимо сделать отказоустойчивый кластер, разнесенный по трем цодам, и в случае отсутствия связи между цодами приложения и бд работали автономно.
Nick
Бд в 99% работают на чтение, запись полезных данных в момент аварии не производится.
Nick
Но если бд в ro режиме приложение не работает, так как пишет в бд сессии и логи
Nick
Нуриддин
Nick
Нуриддин
Нуриддин
Nick
Nick
Nick
Nick
Нуриддин
Есть вариант поиграть с ha proxy и настроить зеркальность сообщений и ниже редис чтобы данные кэшировались
Нуриддин
Однако это лишь одно из оптимальных но не надёжных решений
Нуриддин
Нуриддин
Если нужен полностью отказаустойчивый кластер без доп инструментов не обойтись
Нуриддин
Даже если не критично это может плохо сказаться на остальных участках кода
Нуриддин
И уж тем более на имедж производителя
Nick
Nick
Nick
Задача скорее репликации чем отказоустойчивости в классическом понимании
Нуриддин
очевидно что не нужен))
Тогда и код не нужен пусть люди сами пишут запросы в базу чтобы получить их просто раздадим дрова всем клиентам)))
Нуриддин
Nick
Нуриддин
Тогда при ЧП ставьте новую бд и записывайте реплики по новой с первого мастера
Nick
Спасибо всем!
Нуриддин
Я не понял этот совет помог?
Нуриддин
Спасибо всем!
Когда найдете решение расскажите к каким итогам вы пришли, очень интересно
Nick
Viktar
Если вы рассматриваете что больше половины нод могут быть недоступны, то может монга не ваш выбор. Посмотрите касандру