Задать вопрос
@Devero97

Как обновить одну коллекцию, когда изменения происходят в другой?

У меня есть связанные 2 коллекции .При заполнении данных в форме, я выбираю подгруженный заранее список, где выбираю нужные айдишники, при заполнении таблицы я отправляю данные на сервер и обрабатываю их вот так:
const Category = require('../models/category.model')
const Tag = require('../models/tag.model')
const slugify = require('slugify')
module.exports.createTag = async (req, res) => {
  try {
    const tag = new Tag({
      premium: req.body.premium,
      categories: req.body.categories,
      title: req.body.title,
      tag: slugify(req.body.title),
      description: req.body.description,
      name: req.body.name
    })

    await tag.save()

    req.body.categories.forEach(async item => {
      const category = await Category.findById(item._id)
      category.tags.push(tag._id)
      await category.save()
    })

    res.status(201).json({message: 'Тег успешно создан'})
  } catch (e) {
    res.status(500).json({message: 'Ошибочка'})
  }
}

В моедли они связаны вот так:
tags: [
    {
      type: Schema.Types.ObjectId,
      ref: 'tags'
    }
  ]
  categories: [
    {
      ref: 'categories',
      type: Schema.Types.ObjectId
    }
  ]

Как мне при обновлении данных изменять другую коллекцию? Вот у меня выбрано из списка 2 варианта, а как мне сделать, чтобы это перезаписать? Если я сделаю один выбор из подгруженного списка, то все сохранится как надо, но в другой коллекции все также будет присутствовать ранее выбранный пункт
  • Вопрос задан
  • 78 просмотров
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы