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

Как изменить свойство модели на которую ссылаешься?

Всем привет. Пишу приложение, в котором есть тренировки, состоящие из упражнений. Создаю такие модели:
const valuesOfExercise = new Schema({
  exercise: {type: Schema.Types.ObjectId, ref: "Exercise"},
  repeats: {type: Number, required: true},
  measure: {type: Number, required: true},
  order: {type: Number}
})

const workoutSchema = new Schema({
  user: { type: Schema.Types.ObjectId, ref: "User" },
  date: {type: Date},
  exercises: [valuesOfExercise]
})

На фронте есть возможность удалить упражнение из тренировки либо переставить местами упражнения.
Соответственно за порядок выполнения упражнений отвечает значение order, по которому сортируются упражнения. После удаления каждого упражнения образуется дыра, которую нужно закрыть. С фронта приходит обьект, который подлежит удалению. Код выглядит так:
const {itemToDelete} = req.body
Workout.find({user: req.payload._id}).populate({path: 'exercises.exercise'})
      .exec((err, item)=>{
        item.map((ex, i)=>{
          let arr = [...ex.exercises]
          arr.splice(itemToDelete.order, 1)
          arr.map((ex, index)=>{
            ex.order = index;
            
          })
          console.log(arr)
        })
        
      })

Ничего другого пока не придумал. Массив новый с нужными значениями, с этим все ок. А вот как изменить значения order в базе данных - не имею представления, собственно в этом и заключается вопрос.
Буду рад любым полезным замечаниям, так как в бэке я новичок и, по сути, это мой первый более-менее серьезный опыт работы с mongoose.
  • Вопрос задан
  • 20 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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