Удаление из двух разных схем - PullRequest
0 голосов
/ 19 ноября 2018

Я создал Gym Web App для опыта и пришел к этапу, когда я не могу понять, как решить эту проблему. У меня есть пользователи и GymClasses.

Когда вы записываетесь в класс гимнастики, он сохраняет userId в classMembers array. Затем также сохраняет класс, прикрепленный к user в их схеме.

Таким образом, проблема заключается в том, что при попытке удалить класс, в котором зарегистрированы пользователи, он удаляет класс, как и ожидалось, но мне нужно получить каждый userId, зарегистрированный в этом классе, и удалить classId их посещение. классы.

Это изображения class Schemas:

enter image description here

Как вы видите, Class Schema имеет classMembers array, который заполнен userId's, которые зарегистрированы в классе.

Это пользовательская схема:

const bookedClassesSchema = mongoose.Schema({
  classId: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'createClass',
  },
  dateBooked: {
    type: Date,
  }
})

const userSchema = mongoose.Schema({
  name: {
    type: String,
    required: true
  },
  email: {
    type: String,
    required: true,
    unique: true
  },
  password: {
    type: String,
    required: true
  },
  address: {
    type: String,
    required: true
  },
  gymLocation: {
    type: String,
    required: true
  },
  bookedClasses: [bookedClassesSchema]
});

Теперь, если подумать, то перед тем, как удалять класс, перебирайте classMembers array grab каждый userId переход к пользователю, и так как у нас уже есть ClassId, который мы удаляем, то удаляем этот ClassId от bookedClasses array. Я не уверен, как я могу это сделать, поэтому любой совет будет отличным!

Это то, что я сделал до сих пор:

exports.deleteClass = (req, res) => {
  let classId = req.params.id;
  let users = [];
    GymClass.findById({
      _id: classId
    }, 'classMembers', (res ,err) => {
      if (err) {
        res.status(401).json({
          message: "Error Occured!"
        })
      } else {
        res.push(users);
        users.forEach(function(element) {
          console.log(element);
        });
          users.forEach( (users.userId) => {
            console.log(users.userId);
          });

Я не пошел намного дальше этого, любые примеры или помощь были бы очень признательны!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...