Ответы пользователя по тегу MongoDB
  • Добавление нескольких валют?

    @foterio
    Мне тоже нужны были исторические данные по ценам и прайслисты.
    Я сделал сущность Price и таблицу к ней prices, со следующими полями
    currency как ENUM("EURO","USD","CNY","RUR")
    value как int, стоит заметить что мы храним деньги в копейках, центах и прочее
    created_at чтобы в будущем фильтровать их по дате

    Теперь везде, где мне нужна цена, я указываю price_id и все.

    Все расчеты внутри компании мы проводим в Долларах США.
    Там, где нужно выйти за пределы компании, можно запросить для каждой цены курс, так как дата этой цены известна в created_at.
    Ответ написан
  • Mongoose как обновлять обьект в массиве?

    @foterio
    1. Получаем документ из MongoDB
    const document = await ВашаСущность.findById(id)
    2. Берем массив чтобы удобнее с ним работать
    const bets = [...document.gameInfo.bets]
    3. Производим необходимые изменения
    // id ставки, которую нужно обновить
    const betId = 655037535
    // Получаем обновленный массив ставок
    const updatedBets = bets.map((bet) => {
      // Если betId совпадает с нашей ставкой, то изменяем объект
      if (bet.id == betId) return {
        ...bet,
        name: 'Новое значение поля Name',
      }
      // Остальные ставки остаются нетронутыми
      return bet
    })

    4. Сохраняем результат в MongoDB
    const update = {
      gameInfo: {
        ...document.gameInfo,
        bets,
      }
    }
    const updatedDocument = findOneAndUpdate({ _id: id }, update)
    Ответ написан
    Комментировать
  • Применение объекта req.query на сервере node js?

    @foterio
    1. Для SEO-оптимизации. Робот не нажимает на кнопки/фильтры и прочее. А просто ходит по страницам. И следовательно он не сможет нормально проиндексировать их. (не важно, если это внутренние корпоративные системы, личные кабинеты и прочее, там где необходима авторизация)
    2. Чтобы пользователи могли кидать ссылку друг другу и получать одинаковый результат. Также чтобы вы сами могли через баннеры или рекламу отправлять пользователя на нужные товары.
    3. SSR - для серверного рендеринг. Серверу при отработке запроса необходимо знать все данные, чтобы правильно отрендерить страницу и выдать готовый HTML за один заход. Поэтому все и передают эти параметры таким образом еще query.

    Вот здесь более подробно рассказывал как это работает
    https://qna.habr.com/q/1274714#answer_2331146
    Ответ написан
    Комментировать