Задать вопрос
Ответы пользователя по тегу MongoDB
  • Можно ли избавиться от избыточных типов (struct) в Golang?

    @deliro
    Либо делать несколько типов, либо один супер-тип, который будет содержать все возможные поля, часть из которых будет nil'ами, если не пришла из апи. У го очень тупорылая система типов, ни о каких ADT речи нет
    Ответ написан
    4 комментария
  • Как оптимизировать сохранение истории чата в БД?

    @deliro
    Мне кажется (я могу ошибаться), что если при получении каждого нового сообщения сохранять его в базу (что-то типа ChatModel.findByIdAndUpdate(chat._id)), то это будет сильно нагружать процессор.

    Зависит от способа организации данных, от самих данных, от нагрузки. Одно дело, когда одновременно ведут диалог 10 человек и другое, когда 10 миллионов.

    Можно делать по-другому: записывать все прилетающие сообщения в переменную. Затем каждые, например, N сообщений делать апдейт поля в базе, конкатинируя получившуюся строку с уже хранящейся.

    1. Это ненадёжно. Например, у тебя работает 15 разработчиков, каждый из них деплоит 2 раза в день в течении рабочего дня. Итого, каждые ~16 минут у всех теряется несколько рандомных сообщений.
    2. Ты хочешь сохранять каждые N сообщений. Представь, что я написал N-1 сообщений и потерялся на год. Уж за год сервер точно один раз передеплоят и все мои сообщения потеряются. Здесь нужны таймеры

    В общем, посоветуйте хороший способ реализации быстрого и не слишком затратного способа сохранять историю чата

    Установить rocketchat/mattermost/etc.

    А если серьёзно, то проводи нагрузочные тесты. Если юзеров будет 1.5 землекопа — сделай просто "как-нибудь". Вот когда миллионы юзеров будут, тогда приходи... А стоп, когда у тебя будут миллионы юзеров, у тебя хватит денег нанять людей, которые перепишут как надо
    Ответ написан
  • Как обновить все документы в MongoDB?

    @deliro
    https://docs.mongodb.com/manual/reference/method/d...

    P.S. Причём тут боты и дискорд?
    Ответ написан
    Комментировать
  • MongoDb в Django?

    @deliro
    1. Django начнёт официально поддерживать монгу только в 3 версии, и то непонятно, в какой именно и насколько хорошо. Т.к. async они тоже собираются завезти в 3 версию, но в коде 3.0a там им и не пахнет (например, асинхронным ORM)
    2. Монга немного упрощает разработку (хотя, с Django ORM и миграциями, я не вижу, как она упростит разработку), но сильно уменьшает качество продукта, особенно в неумелых руках. Например, у вас легко могут оказаться неконсистентные данные в бд, с которыми вам будет непонятно, что делать.

    Есть миллиард статей о том, как монга со временем испортила продукт. Хотя, есть такой же миллиард, где её восхваляют. Однако, очевидно, что реляционные БД дают тебе больше строгости и заставляют проектировать сущности лучше. С ними сложнее, но и сложнее отстрелить себе ноги.
    Ответ написан
    Комментировать
  • Как отправить на email адрес данные из Flask/MongoDB web приложения?

    @deliro
    habrahabr.ru/post/234737

    Остальные статьи из этой серии тоже советую.
    Ответ написан
    Комментировать